Golang學習筆記-1.9 for迴圈

來源:互聯網
上載者:User

本文系第九篇Golang語言學習教程
Go語言只有For這一種迴圈語句。For迴圈有三種形式,只有其中一種使用分號。

  • 與其他語言for類似
for init; condition; post { }
  • 和while類似
for condition { }
  • 和其他語言for {;;}類似
for { }

init:一般為賦值運算式,為迴圈變數賦初值
condition:迴圈控制條件,關聯運算式或邏輯運算式
post:一般為賦值運算式,給迴圈變數增量或減量

下面通過幾個例子來理解迴圈
例1

package mainimport "fmt"func main(){    for i :=1; i <=10; i++{ //i=1,且i<=10,每次迴圈+1        fmt.Printf(" %d", i)    }}

以上例子中,分別以分號;定義了init,condition,post

初始化語句只執行一次,迴圈初始化後,將檢查迴圈條件,如果結果為true,則執行{ }中的迴圈體;post語句在每次成功迴圈迭代後執行,在執行完post後,條件將被再次檢查,若結果為true,則迴圈繼續執行,否則迴圈結束。

例2

package mainimport "fmt"func main(){    j := 0    for ; j <= 10; {  //兩個 ; 可以省略        fmt.Printf(" %d", j)        j += 2    }}

以上例子中,初始化語句和post語句都被省略,j在for迴圈外就被初始化為0,只要條件j <= 10為true,迴圈就會執行,並且在迴圈中 j 以2的增量自增。
以上程式列印了0到10所有的偶數:0 2 4 6 8 10

例3

package mainimport "fmt"func main(){    for {        fmt.Println("Hello,world!")    }}

以上程式是一個無限迴圈程式,會不停的輸出Hello,world!

break

break用於在完成正常執行之前突然中止for迴圈,之後程式會開始在for迴圈下一行代碼執行。
例4

package mainimport "fmt"func main(){    for a := 0; a <= 10; a++{        if a >5 {            break        }        fmt.Printf(" %d", a)    }    fmt.Println("\nthis go is stop")}

以上程式在迴圈開始後首先判斷a > 5條件是否成立,若不成立,繼續列印a的值,繼續迴圈;若成立,則break終止迴圈,繼續執行下面的列印 this go is stop
迴圈列印結果為:

0 1 2 3 4 5

this go is stop

continue

continue用來跳出當前迴圈,在continue語句後所有的迴圈都不會再本次迴圈中執行,迴圈體會在下一次迴圈中繼續執行。
例5

package mainimport "fmt"func main(){    for b := 0; b <= 10; b++{        if b%2 == 0 {            continue        }        fmt.Printf(" %d", b)    }}

以上程式在迴圈開始後首先判斷b除以2的餘數是不是0(b%2 == 0),若結果為成立,則跳出本次迴圈,後面的語句不會被執行;若不成立,則繼續執行後面的語句。
迴圈列印的結果為:
1 3 5 7 9

例6
for迴圈中可以聲明和操作多個變數:

package mainimport "fmt"func main(){    for yes, no :=10,1; yes <=20 && no <=10 ; yes, no = yes+1, no+1  {        fmt.Printf("\n%d * %d = %d", yes,no,yes * no )    }}

以上程式聲明yes和no的值,&&用來確保yes的值小於20並且no的值小於10,每次迴圈完成後yes和no自增1
迴圈列印的結果為:

10 * 1 = 10
11 * 2 = 22
12 * 3 = 36
13 * 4 = 52
14 * 5 = 70
15 * 6 = 90
16 * 7 = 112
17 * 8 = 136
18 * 9 = 162
19 * 10 = 190

以上為學習Golang 迴圈篇

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.