20 Go 語言的迴圈語句
阿新 • • 發佈:2020-06-25
在 Go 語言中減少了迴圈語句的關鍵字,僅有一個 for 關鍵字。但是並沒有減少其功能,而且它更是相容了其它語言中的while關鍵字的用法,甚至更強大。
1. for 迴圈語句
1.1 普通用法
在 Go 語言中,for 迴圈之後一樣可以跟三個語句,單次表示式;條件表示式;末尾迴圈體,但是它不需要使用()
來包裹這三個表示式,寫法上更加的簡潔。同時它也和其它語言一樣,可以任意省略這三個表示式。
程式碼示例:
package main
import "fmt"
func main() {
for a := 0; a < 10; a++ {
fmt.Println(a)
}
}
省略單次表示式程式碼示例:
package main
import "fmt"
func main() {
a := 0
for ; a < 10; a++ {//表示式可以省略,但是;不能省略
fmt.Println(a)
}
}
執行結果:
1.2 代替 while 的用法
在其它大部分語言中 for 迴圈中省略單次表示式和末尾迴圈體其實就和其它語句中的 while 用法一致了。所以在 Go 語言中,直接使用省去單次表示式和末尾迴圈體的 for 迴圈語句來代替 while 的用法,為了簡便程式碼書寫,Go 語言中 for 迴圈語句在省去單次表示式
程式碼示例:
package main
import "fmt"
func main() {
a := 0
for a < 10 { //和其它語言中的while(a<10)一致
fmt.Println(a)
a++
}
}
執行結果:
2. for 語言中的break 和 continue
在我們的生產環境中,經常需要用到死迴圈的場景。所以在 Go 語言中新增了一個 for 關鍵字死迴圈的用法,讓程式設計師不用寫無聊的 for(;;){}
和do{} while(1)
。同時可以使用 break 和 continue
Tips:break 和 continue 的邏輯和語法類似,故本文只介紹break。
2.1 break跳出單層死迴圈
在你想要結束一個死迴圈的時候,只需要執行一個 break 語句即可。
程式碼示例:
package main
import "fmt"
func main() {
a := 0
for { //死迴圈的寫法就是省略 單次表示式;條件表示式;末尾迴圈體
fmt.Println(a)
a++
if a >= 10 {
break //跳出死迴圈
}
}
}
執行結果:
2.2 break跳出多層死迴圈
在其它語言中,你很難去控制跳出迴圈的層數,在 Go 語言中提供了一種break LOOP
的寫法,可以使迴圈跳出到 LOOP 所在的位置。
程式碼示例:
package main
import "fmt"
func main() {
a := 0
LOOP:
for {
for {
fmt.Println(a)
a++
if a >= 10 {
break LOOP //跳出迴圈至LOOP所在的層級
}
}
}
}
執行結果:
3. 小結
本文主要介紹了 for 關鍵字在 Go 語言的迴圈中的用法:
- for 之後的語句不需要使用
()
包裹; break+LOOP
的形式可以一次性跳出多層迴圈;- for 可以和其它語言中的 while 一樣使用;
- for{…} 的形式是一個死迴圈。