for 循環
example 1
1 | for 初始化語句;條件判斷;變量修改{ |
example 2
for
可以省略前後的初始化語句及變量修改語句,只留下條件語句
可以直接當成while語句使用1
2
3for 條件 {
}
example 3
死循環或稱無限循環1
2
3for true {
}
可直接簡寫成1
2
3for {
}
example 4
用來遍歷數組,slice,map,chan等類型
可使用for range
語句1
2
3
4str := "Hello World"
for i,v := range str { //[1]
fmt.Printf("index[%d],value:%c\n",i,v)
}
- 字符串其實就是一個字符組成的陣列
[1] i
為元素於陣列裡的下標,v
為值,i
,v
皆為初次定義,都必須聲明(:=
)才能使用
result1
2
3
4
5
6
7
8
9
10
11index[0],value:H
index[1],value:e
index[2],value:l
index[3],value:l
index[4],value:o
index[5],value:
index[6],value:W
index[7],value:o
index[8],value:r
index[9],value:l
index[10],value:d
continue & break
與其他語言的用法一樣
continue
表示跳過後面執行語句並重新開始執行break
跳出循環
goto & LABEL
- 容易打亂語句的執行
- 代碼可讀性變差,基本上不建議使用
LABEL
LABEL的語法就是一串自訂義的字符串加一個:
作為標記1
2
3
4
5
6
7
8
9
10
11
12
13package main
import "fmt"
func main(){
LABEL1:
for i:=0;i<=5;i++ {
if i == 4 {
continue LABEL1
}
fmt.Println(i)
}
}
goto
goto
到任何LABEL
只能在同一個函數裡面不能跳脫到函數外部或其他函數的標籤
以下就是使用goto
來實現for
循環1
2
3
4
5
6
7
8
9
10
11
12package main
func main(){
i:=0
HERE:
print(i)
i++
if i == 5 {
return
}
goto HERE
}