有時候我們會需要一個程式不斷的執行直到它完成特定條件為止
這時候我們就會需要一個叫迴圈的方法
今天要介紹的就是最常見的迴圈for
for cond {
// 重複執行
}
只要cond為true
For內的代碼就會不斷執行
這邊來看一個簡單的應用
package main
func main() {
var a = 1
for a<=100{
println(a)
a++
}
}
要印出1~100的數列
我們需要將 a 先宣告為 1
接著給 for 一個條件即「a <= 100」
只要條件為 true,那「印出a 並且印完為a+1」就會不斷執行
又或者,我們可以這樣寫
package main
func main() {
for a := 1; a <= 100; a++{
println(a)
}
}
上述代碼可以達到一樣的效果
a 初始化為 1,在每次的迭代中將 a 遞增 1,當 a 小於等於 100 時終止迴圈。
break可以幫我們提早離開迴圈
package main
func main() {
for a := 1; a <= 100; a++{
if a > 30 {
break
}
println(a)
}
}
如果 a 大於 30 就break 離開迴圈
這樣一來,我們就可以只印出1~30的數列了!
如果我今天想要只印出偶數怎麼辦呢
可以用continue來繞過單次的迴圈
package main
func main() {
for a := 1; a <= 100; a++{
if a%2 == 1 {
continue
}
println(a)
}
}
遇到 a/2 的餘數為 1 的時候就continue 跳過此次執行
Goto可以任意移動到同函式中其他位置
例如利用Goto達到break的效果
package main
func main() {
for a := 1; a <= 100 ; a++ {
if a > 30{
goto END
}
println(a)
}
END:
}
a>30 時 移動到 END 標籤
或利用Goto達到continue的效果
package main
func main() {
b := 1
loop:
for b < 100{
if b%2 == 1{
b++
goto loop
}
println(b)
b++
}
}
b 為奇數時 b+1 並且 goto loop標籤
請注意goto loop前面一定要 b++
否則下次判定 b 還是會是奇數 陷入無線迴圈