Like Share Discussion Bookmark Smile

J.J. Huang   2025-02-24   Getting Started Golang 03.控制流程   瀏覽次數:次   DMCA.com Protection Status

Go | 控制結束與跳過的瞬間

💬 簡介

breakcontinue 是兩個重要的流程控制語句。它們能夠幫助我們在迴圈中根據特定條件進行跳過或提前結束,從而提升程式的效率和可讀性。

本文將深入探討 breakcontinue 的使用方式,並提供範例來說明它們在實際開發中的應用。

圖片來源:Gophers


📚 breakcontinue 的基本概念

1️⃣ break 語句

break 用來提前結束當前的迴圈,無論條件是否成立。在處理需要提前退出的情況時,break 可以有效地終止循環,從而避免不必要的運算。

  • 基本範例:使用 break 提前結束迴圈
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package main

    import "fmt"

    func main() {
    for i := 1; i <= 10; i++ {
    if i == 6 {
    fmt.Println("數字達到 6,跳出迴圈")
    break
    }
    fmt.Println(i)
    }
    }
    輸出的結果如下:
    1
    2
    3
    4
    5
    6
    1
    2
    3
    4
    5
    數字達到 6,跳出迴圈

    📝 在這個範例中,當 i 等於 6 時,break 會終止迴圈,導致後續的數字不再被印出。

2️⃣ continue 語句

continue 用來跳過當前循環中的剩餘程式碼,直接進入下一次循環。在某些情況下,可能希望跳過特定條件下的運算,而不是終止整個迴圈。

  • 基本範例:使用 continue 跳過某些步驟
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package main

    import "fmt"

    func main() {
    for i := 1; i <= 10; i++ {
    if i%2 == 0 {
    continue
    }
    fmt.Println(i)
    }
    }
    輸出的結果如下:
    1
    2
    3
    4
    5
    1
    3
    5
    7
    9

    📝 在這個範例中,當 i 是偶數時,continue 會跳過該次循環的剩餘部分,導致只有奇數被印出。


🛠️ breakcontinue 在實際應用中的使用

1️⃣ 使用 break 來終止無窮迴圈

有時候,我們會在無窮迴圈中根據某些條件來終止循環,這時 break 就顯得尤為重要。

  • 範例:處理無窮迴圈
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package main

    import "fmt"

    func main() {
    i := 1
    for {
    fmt.Println(i)
    i++
    if i > 5 {
    break
    }
    }
    }
    輸出的結果:
    1
    2
    3
    4
    5
    1
    2
    3
    4
    5

    📝 在這個範例中,無條件的 for 迴圈會一直執行,直到 i 大於 5 時,使用 break 終止迴圈。

2️⃣ 使用 continue 跳過不需要的計算

當我們希望跳過某些不需要的計算或處理時,continue 是非常有用的。這樣能夠避免不必要的操作,提高程式執行效率。

  • 範例:跳過特定條件下的處理
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package main

    import "fmt"

    func main() {
    for i := 1; i <= 10; i++ {
    if i%3 == 0 {
    fmt.Println(i, "是 3 的倍數,跳過")
    continue
    }
    fmt.Println(i)
    }
    }
    輸出的結果:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1
    2
    3 是 3 的倍數,跳過
    4
    5
    6 是 3 的倍數,跳過
    7
    8
    9 是 3 的倍數,跳過
    10

    📝 在這個範例中,continue 會跳過所有是 3 的倍數的數字,讓程式繼續處理下一個數字。


🚀 進階應用:結合breakcontinue 提高程式效率

在複雜的程式邏輯中,我們經常會遇到需要根據不同條件來終止或跳過某些步驟的情況。這時候,breakcontinue 可以幫助我們更靈活地控制迴圈,從而避免不必要的運算,提升程式效率。

  • 範例:優化搜尋流程
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    package main

    import "fmt"

    func main() {
    numbers := []int{1, 3, 5, 7, 9, 11, 13}
    target := 7
    for _, num := range numbers {
    if num == target {
    fmt.Println("找到目標數字:", num)
    break // 找到後直接結束迴圈
    }
    }

    // 如果需要跳過某些不符合條件的數字
    for _, num := range numbers {
    if num%2 == 0 {
    continue // 跳過偶數
    }
    fmt.Println("處理奇數:", num)
    }
    }
    輸出的結果:
    1
    2
    3
    4
    5
    6
    7
    8
    找到目標數字: 7
    處理奇數: 1
    處理奇數: 3
    處理奇數: 5
    處理奇數: 7
    處理奇數: 9
    處理奇數: 11
    處理奇數: 13

    📝 在這個範例中,break 用於在找到目標數字後立即終止搜尋,而 continue 用於跳過偶數數字,從而提高處理奇數的效率。


🎯總結

breakcontinue 是在語言中非常重要的控制流程工具。它們使得我們能夠在循環中根據條件提前結束或跳過某些步驟,從而提高程式的效率和可讀性。掌握它們的使用將有助於你在實際開發中寫出更簡潔、更高效的程式碼。

最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。


註:以上參考了
Go