Go 只有一種循環(huán)結(jié)構(gòu)—— for 循環(huán)岖研。
基本的 for 循環(huán)包含三個由分號分開的組成部分:
初始化語句:在第一次循環(huán)執(zhí)行前被執(zhí)行
循環(huán)條件表達(dá)式:每輪迭代開始前被求值
后置語句:每輪迭代后被執(zhí)行
初始化語句一般是一個短變量聲明,這里聲明的變量僅在整個 for 循環(huán)語句可見扳肛。
如果條件表達(dá)式的值變?yōu)?false,那么迭代將終止乘碑。
package main
import(
"fmt"
)
func main(){
sum := 0
for i := 0; i <10; i++ {
sum += 1
}
fmt.Println(sum)
}
【注意】for循環(huán)的三個組成部分挖息,不需要括起來(這一點(diǎn)區(qū)別于C、java等其他語言)兽肤。循環(huán)體必須用 { } 括起來套腹。
三個組成部分中的,初始化語句和后置語句是可選的资铡。所以电禀,for循環(huán)你也可以寫成這樣
sum := 0
sum2 := 1
for ; sum < 9; {
sum += 1
sum2 += sum2
}
fmt.Println(sum2)
其實(shí),上面for循環(huán)的三個組成部分中笤休,如果只剩下條件表達(dá)式了尖飞,那么那兩個分號也是可以省略的。這就有點(diǎn)像C語言的while循環(huán)了店雅。
package main
import(
"fmt"
)
func main(){
sum := 0
sum2 := 1
for sum < 9 {
sum += 1
sum2 += sum2
}
fmt.Println(sum2)
}
如果你連條件表達(dá)式也省略了政基,Go語言也認(rèn)為是正確的寫法。那就是一個死循環(huán)闹啦。
for{
}
寫個簡單的例子沮明,因為你需要知道如何挑出死循環(huán),當(dāng)然是使用break了窍奋。
package main
import "fmt"
func main(){
i := 0
for {
i++
fmt.Println("Now i is", i)
if (i>3){
break
}
fmt.Println("Behind if i is", i)
}
}
執(zhí)行的結(jié)果是這樣的珊擂,顯然在“Behid if i is 4”打印之前,就跳出了for循環(huán)费变。
Now i is 1
Behind if i is 1
Now i is 2
Behind if i is 2
Now i is 3
Behind if i is 3
Now i is 4