iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
自我挑戰組

Go從新學系列 第 9

[DAY 9]GO 的 迴圈

有時候我們會需要一個程式不斷的執行直到它完成特定條件為止

這時候我們就會需要一個叫迴圈的方法

今天要介紹的就是最常見的迴圈for

  • 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跳出迴圈

break可以幫我們提早離開迴圈

package main

func main() {
	for  a := 1; a <= 100; a++{
		if a > 30 {
			break
		}

		println(a)

	}
}

如果 a 大於 30 就break 離開迴圈

這樣一來,我們就可以只印出1~30的數列了!

  • 利用 continue 跳過單次迭代

如果我今天想要只印出偶數怎麼辦呢

可以用continue來繞過單次的迴圈

package main

func main() {
	for  a := 1; a <= 100; a++{
		if a%2 == 1 {
			continue
		}

		println(a)

	}
}

遇到 a/2 的餘數為 1 的時候就continue 跳過此次執行


  • Goto

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 還是會是奇數 陷入無線迴圈


上一篇
[DAY 8]在GO中控制結構
下一篇
[DAY 10]GO 的 陣列(Array)
系列文
Go從新學26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言