Go 語言的For循環有3種寫法:1、和C語言for一樣的寫法,語法「for init; condition; post {...}」;2、和C語言while一樣的寫法,語法「for condition {...}」;3、和C語言for(;;)一樣的寫法,語法「for {...}」。需要注意,左花括號「{」必須與for關鍵字處於同一行。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
與多數語言不同的是,Go語言中的迴圈語句只支援 for 關鍵字,而不支援 while 和 do-while 結構。
for 迴圈是一個迴圈控制結構,可以執行指定次數的迴圈。
Go 語言 for 迴圈的寫法
#Go 語言的 For 迴圈有 3 種形式,只有其中的一種使用分號。
和C 語言的for 一樣:
for init; condition; post { }
和C 的while 一樣:
for condition { }
和C 的for(;;) 一樣:
for { }
init: 一般為賦值表達式,給控制變數賦初值;
condition:關係式表達式或邏輯表達式,循環控制條件;
post: 一般為賦值表達式,給予控制變數增量或減量。
for語句執行程序如下:
#1、先將表達式1 賦初值;
2、判別賦值表達式init 是否滿足給定條件,若其值為真,滿足循環條件,則執行循環體內語句,然後執行post,進入第二次循環,再判別condition;否則判斷condition 的值為假,不滿足條件,就終止for迴圈,執行迴圈體外語句。
使用循環語句時,需要注意的有以下幾點:
左花括號{
必須與for處於同一行。
Go語言中的for 迴圈與C語言一樣,都允許在迴圈條件中定義和初始化變量,唯一的區別是,Go語言不支援以逗號為間隔的多個賦值語句,必須使用平行賦值的方式來初始化多個變數。
Go語言的for 迴圈同樣支援continue 和break 來控制迴圈,但是它提供了一個更高階的break,可以選擇中斷哪一個循環,如下例:
for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break JLoop } fmt.Println(i) } } JLoop: // ...
上述程式碼中,break 語句終止的是JLoop 標籤處的外層迴圈。
Go 語言 for 迴圈的使用
for 迴圈的 range 格式可以對 slice、map、陣列、字串等進行迭代迴圈。格式如下:
for key, value := range oldMap { newMap[key] = value }
以上程式碼中的 key 和 value 是可以省略。
如果只想讀取key,格式如下:
for key := range oldMap
或這樣:
for key, _ := range oldMap
如果只想讀取value,格式如下:
for _, value := range oldMap
實例
計算1 到10 的數字總和:
package main import "fmt" func main() { sum := 0 for i := 0; i <= 10; i++ { sum += i } fmt.Println(sum) }
輸出結果為:
55
init 和post 參數是可選的,我們可以直接省略它,類似While 語句。
以下實例在sum 小於10 的時候計算sum 自相加後的值:
package main import "fmt" func main() { sum := 1 for ; sum <= 10; { sum += sum } fmt.Println(sum) // 这样写也可以,更像 While 语句形式 for sum <= 10{ sum += sum } fmt.Println(sum) }
輸出結果為:
16 16
以上是go語言中for的寫法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!