1. 程式人生 > GO語言入門 >20 Go 語言的迴圈語句

20 Go 語言的迴圈語句

在 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)。同時可以使用 breakcontinue

來控制迴圈。

Tipsbreakcontinue 的邏輯和語法類似,故本文只介紹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{…} 的形式是一個死迴圈。