您可以使用 break 語句重寫 for2.go 的代碼:
示例 5.10 for3.go:
for {
i = i - 1
fmt.Printf("The variable i is now: %d\n", i)
if i < 0 {
break
}
}
因此每次迭代都會對條件進行檢查(i < 0),以此判斷是否需要停止循環(huán)。如果退出條件滿足,則使用 break 語句退出循環(huán)。
一個 break 的作用范圍為該語句出現(xiàn)后的最內(nèi)部的結構,它可以被用于任何形式的 for 循環(huán)(計數(shù)器、條件判斷等)。但在 switch 或 select 語句中(詳見第 13 章),break 語句的作用結果是跳過整個代碼塊,執(zhí)行后續(xù)的代碼。
下面的示例中包含了嵌套的循環(huán)體(for4.go),break 只會退出最內(nèi)層的循環(huán):
示例 5.11 for4.go:
package main
func main() {
for i:=0; i<3; i++ {
for j:=0; j<10; j++ {
if j>5 {
break
}
print(j)
}
print(" ")
}
}
輸出:
012345 012345 012345
關鍵字 continue 忽略剩余的循環(huán)體而直接進入下一次循環(huán)的過程,但不是無條件執(zhí)行下一次循環(huán),執(zhí)行之前依舊需要滿足循環(huán)的判斷條件。
示例 5.12 for5.go:
package main
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
continue
}
print(i)
print(" ")
}
}
輸出:
0 1 2 3 4 6 7 8 9
顯然,5 被跳過了。
另外,關鍵字 continue 只能被用于 for 循環(huán)中。