4 2 Go語言for(迴圈結構)

2021-10-06 04:37:14 字數 1878 閱讀 4052

與多數語言不同的是,go語言中的迴圈語句只支援 for 關鍵字,而不支援 while 和 do-while 結構,關鍵字 for 的基本使用方法與c語言和 c++ 中非常接近:

sum :=

0for i :=

0; i <

10; i++

可以看到比較大的乙個不同在於 for 後面的條件表示式不需要用圓括號()括起來,go語言還進一步考慮到無限迴圈的場景,讓開發者不用寫無聊的 for(;?{}和do{} while(1);,而直接簡化為如下的寫法:

sum :=

0for

}

使用迴圈語句時,需要注意的有以下幾點:

左花括號

fmt.

println

(i)}

}jloop:

// ...上述**中,break 語句終止的是 jloop 標籤處的外層迴圈。

for 中的初始語句——開始迴圈時執行的語句

初始語句是在第一次迴圈前執行的語句,一般使用初始語句執行變數初始化,如果變數在此處被宣告,其作用域將被侷限在這個 for 的範圍內。

初始語句可以被忽略,但是初始語句之後的分號必須要寫,**如下:

step :=

2for

; step >

0; step--

這段**將 step 放在 for 的前面進行初始化,for 中沒有初始語句,此時 step 的作用域就比在初始語句中宣告 step 要大。

for 中的條件表示式——控制是否迴圈的開關

每次迴圈開始前都會計算條件表示式,如果表示式為 true,則迴圈繼續,否則結束迴圈,條件表示式可以被忽略,忽略條件表示式後預設形成無限迴圈。

結束迴圈時帶可執行語句的無限迴圈

下面**忽略條件表示式,但是保留結束語句,**如下:

var i int

for;

; i++

}

**說明如下:

第 3 行,無須設定 i 的初始值,因此忽略 for 的初始語句,兩個分號之間是條件表示式,也被忽略,此時迴圈會一直持續下去,for 的結束語句為 i++,每次結束迴圈前都會呼叫。

第 5 行,判斷 i 大於 10 時,通過 break 語句跳出 for 迴圈到第 9 行。

2) 無限迴圈

上面的**還可以改寫為更美觀的寫法,**如下:

var i int

for i++

}

**說明如下:

第 3 行,忽略 for 的所有語句,此時 for 執行無限迴圈。

第 9 行,將 i++ 從 for 的結束語句放置到函式體的末尾是等效的,這樣編寫的**更具有可讀性。

無限迴圈在收發處理中較為常見,但需要無限迴圈有可控的退出方式來結束迴圈。

3) 只有乙個迴圈條件的迴圈

在上面**的基礎上進一步簡化**,將 if 判斷整合到 for 中,變為下面的**:

var i int

for i <=

10

在**第 3 行中,將之前使用if i>10{}判斷的表示式進行取反,變為判斷 i 小於等於 10 時持續進行迴圈。

上面這段**其實類似於其他程式語言中的 while,在 while 後新增乙個條件表示式,滿足條件表示式時持續迴圈,否則結束迴圈。

for 中的結束語句——每次迴圈結束時執行的語句

在結束每次迴圈前執行的語句,如果迴圈被 break、goto、return、panic 等語句強制退出,結束語句不會被執行。

Go語言之Go 語言迴圈語句

go 語言提供了以下幾種型別迴圈處理語句 迴圈型別 描述for 迴圈 重複執行語句塊 迴圈巢狀 在 for 迴圈中巢狀乙個或多個 for 迴圈 迴圈控制語句可以控制迴圈體內語句的執行過程。go 語言支援以下幾種迴圈控制語句 控制語句 描述break 語句 經常用於中斷當前 for 迴圈或跳出 swi...

go語言的for迴圈

for迴圈是乙個迴圈控制結構,可以執行指定次數的迴圈。三種迴圈方式 第一種,常見的 for 迴圈,支援初始化語句 for init condition post init 一般為賦值表示式,給控制變數賦初值 condition 關係表示式或邏輯表示式,迴圈控制條件 post 一般為賦值表示式,給控制...

Go 語言迴圈語句

在不少實際問題中有許多具有規律性的重複操作,因此在程式中就需要重複執行某些語句。以下為大多程式語言迴圈程式的流程圖 go 語言提供了以下幾種型別迴圈處理語句 迴圈型別 描述 for 迴圈 重複執行語句塊 迴圈巢狀 在 for 迴圈中巢狀乙個或多個 for 迴圈 迴圈控制語句可以控制迴圈體內語句的執行...