Go之旅-for迴圈
Go 語言僅有 for 一種迴圈語句,但常用方式都能支援。其中初始化表示式支援函式呼叫或定義區域性變數,需要注意的是初始化語句中的函式僅執行一次,條件表示式中的函式重複執行,規避方式就是在初始化表示式中定義區域性變數儲存函式返回結果。Go 語言中也有 goto 語句,使用 goto 語句前,必須先定義標籤,標籤區分大小寫,並且未使用的標籤會引發編譯錯誤。和 goto 定點跳轉不同,break、continue 用於中斷程式碼塊執行。break 用於 switch、for、select 語句,終止整個語句塊執行,continue 僅用於 for 迴圈,終止後續邏輯,立即進入下一輪迴圈。break 和 continue 配合標籤使用,可以在多層巢狀中指定目標層級。
<!-- more -->
package main
import (
"fmt"
)
// count函式
func count() int {
fmt.Println("count.") // 列印字串用來檢視count函式執行次數
return 3
}
// main函式
func main() {
// for迴圈
// 初始化表示式,支援函式呼叫或定義區域性變數
for i := 0; i < 10; i++ {
fmt.Println(i)
}
// 類似while迴圈
i := 0
for i < 10 {
fmt.Println(i)
i++
}
// 類似無限迴圈
for {
break
}
// 初始化語句中的count函式僅執行一次
for i, c := 0, count(); i < c; i++ {
fmt.Println("a", i)
}
c := 0
// 條件表示式中的count函式重複執行
for c < count() {
fmt.Println("b", c)
c++
}
// 規避條件表示式中的count函式重複執行,在初始化表示式中定義區域性變數儲存count函式返回結果
count := count()
d := 0
for d < count {
fmt.Println("c", d)
d++
}
// goto定點跳轉
// 須先定義標籤,並且未用到的標籤會引發編譯錯誤
// 不能跳轉到其它函式,或內層程式碼塊內
for i := 0; i < 10; i++ {
fmt.Println(i)
if i > 5 {
goto exit
}
}
exit:
fmt.Println("exit.")
// break 使用者switch、for、select語句,終止整個語句塊執行。continue 僅用於for迴圈,終止後續邏輯,立即進入下一輪迴圈
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // 立即進入下一輪迴圈
}
if i > 5 {
break // 立即終止整個for迴圈
}
fmt.Println(i)
}
// 配合標籤,break和continue可在多層巢狀中指定目標層級
outer:
for i := 0; i < 5; i++ {
for j := 0; j < 10; j++ {
if j > 2 {
fmt.Println()
continue outer
}
if i > 2 {
break outer
}
fmt.Print(i, ":", j, " ")
}
}
}
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- Go的100天之旅-07條件和迴圈Go
- go 中的迴圈依賴Go
- Go 1.22 中的 For 迴圈Go
- Go 陷阱之 for 迴圈迭代變數Go變數
- go語言中import不允許迴圈包含GoImport
- Go的迴圈遍歷使用小坑Go
- Go 關閉chanel & chanel的range迴圈Go
- Go 基礎知識之分支迴圈Go
- JavaScript的map迴圈、forEach迴圈、filter迴圈、reduce迴圈、reduceRight迴圈JavaScriptFilter
- 清華尹成帶你實戰GO案例(8)Go for迴圈Go
- Go_ if else語句 ,,迴圈,,switch,,陣列Go陣列
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 無限for迴圈(死迴圈)
- while迴圈以及do while迴圈While
- 迴圈
- if迴圈
- Go之旅-SwitchGo
- Go之旅-常量Go
- 04流程控制 for迴圈,while迴圈While
- 《快學 Go 語言》第 3 課 —— 分支與迴圈Go
- Go 語言史詩級更新-迴圈Bug修復Go
- Go 處理大陣列:使用 for range 還是 for 迴圈?Go陣列
- Go 1.22中for迴圈語義變得不同了Go
- Go語言流程控制之迴圈結構篇Go
- 【基礎題】【for迴圈】二重迴圈
- JS優化迴圈之展開迴圈JS優化
- Go語言入門教程系列——函式、迴圈與分支Go函式
- 詳解Go語言排程迴圈原始碼實現Go原始碼
- JavaScript for of 迴圈JavaScript
- Java迴圈Java
- javascript迴圈JavaScript
- javaScript for迴圈JavaScript
- while迴圈While
- 事件迴圈事件
- Go 之旅 – 變數Go變數
- Go之旅-變數Go變數
- Go 之旅 - 變數Go變數
- scss中迴圈之@for迴圈佈局畫圓CSS