Like Share Discussion Bookmark Smile

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

Go | 如果這樣,不然就那樣

💬 簡介

if else 是控制流程中最常用的語句之一。它允許程式根據條件來決定接下來該執行哪一段程式碼。

本文將介紹 if else 的基本用法,並展示如何利用它來實現程式中的條件判斷與分岔決策。

圖片來源:Gophers(地鼠造型的原創者為 Renee French)


📚 if else 基本結構

if else 的基本語法結構如下:

1
2
3
4
5
if 條件 {
// 當條件為真時執行的程式碼
} else {
// 當條件為假時執行的程式碼
}

if 語句會檢查條件是否為真(true)。如果條件為真,則執行大括號內的程式碼,否則執行 else 部分的程式碼。

1️⃣ 基本範例

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package main

    import "fmt"

    func main() {
    x := 5
    if x > 0 {
    fmt.Println("x 是正數")
    } else {
    fmt.Println("x 是負數或零")
    }
    }
    執行結果:
    1
    x 是正數

    📝 這個範例簡單展示了如何使用 if else 進行條件判斷。

2️⃣ 使用 if 判斷布林條件

當條件參數是 bool 型別時,if 語句會根據布林值的 truefalse 來進行分岔決策。這是最常見的一種情況,當我們需要根據條件進行不同的處理時,非常有用。

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package main

    import "fmt"

    func main() {
    var condition bool = true

    if condition {
    fmt.Println("條件為 true")
    } else {
    fmt.Println("條件為 false")
    }
    }
    執行結果:
    1
    條件為 true

    📝 在這個範例中,condition 是一個布林變數,當它為 true 時,if 內的程式碼區塊會被執行,輸出 "條件為 true"。若為 false,則執行 else 內的程式碼,輸出 "條件為 false"

3️⃣ 使用 if 進行多重條件判斷

如果有多個條件需要檢查,可以使用 else if 來處理不同的情況。

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package main

    import "fmt"

    func main() {
    x := 0
    if x > 0 {
    fmt.Println("x 是正數")
    } else if x < 0 {
    fmt.Println("x 是負數")
    } else {
    fmt.Println("x 是零")
    }
    }
    執行結果:
    1
    x 是零

    📝 else if 允許我們在多個條件之間進行選擇。

4️⃣ 條件表達式中的初始化

Go 的 if 語句還支持在條件表達式中進行初始化變數,這在某些情況下可以提高程式的可讀性。

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package main

    import "fmt"

    func main() {
    if x := 10; x > 5 {
    fmt.Println("x 大於 5")
    } else {
    fmt.Println("x 小於或等於 5")
    }
    }
    執行結果:
    1
    x 大於 5

    📝 在這個範例中,我們在 if 條件中初始化了 x 變數。這樣的寫法將使 x 只在 if 區塊內有效。


🛠️ 實際應用範例

1️⃣ 判斷最大數

以下是一個使用 if else 來比較兩個數字,並判斷哪個數字較大的範例。

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package main

    import "fmt"

    func main() {
    a := 3
    b := 7
    if a > b {
    fmt.Println("a 比 b 大")
    } else {
    fmt.Println("b 比 a 大")
    }
    }
    執行結果:
    1
    ba

    📝 這個範例展示了如何使用 if else 判斷兩個數字的大小。

2️⃣ 使用 if else 驗證用戶輸入

我們也可以使用 if else 來驗證用戶輸入的資料是否合法。例如,以下程式碼驗證用戶是否輸入了有效的年齡。

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    package main

    import "fmt"

    func main() {
    var age int
    fmt.Print("請輸入年齡:")
    fmt.Scan(&age)

    if age >= 18 {
    fmt.Println("你已成年")
    } else {
    fmt.Println("你還未成年")
    }
    }

    📝 在這個範例中,程式根據用戶輸入的年齡來顯示是否成年。


🚀 進階技巧與最佳實踐

1️⃣ 使用 return 結束 if else 區塊

有時候,為了讓程式邏輯更簡潔,可以在條件語句內使用 return,直接結束函式執行。這樣可以避免使用過多的 else 區塊。

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    package main

    import "fmt"

    func checkNumber(x int) {
    if x > 0 {
    fmt.Println("x 是正數")
    return
    }
    fmt.Println("x 是非正數")
    }

    func main() {
    checkNumber(5)
    checkNumber(-2)
    }
    執行結果:
    1
    2
    x 是正數
    x 是非正數

    📝 在這個範例中,我們使用 return 來結束函式,這樣程式邏輯更為簡潔。

2️⃣ 避免複雜的條件判斷

過多的 if else 可能會讓程式邏輯變得複雜,因此有時候可以考慮將條件判斷提取為單獨的函式,這樣能使程式更具可讀性和可維護性。

  • 範例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    package main

    import "fmt"

    func isPositive(x int) bool {
    return x > 0
    }

    func main() {
    if isPositive(10) {
    fmt.Println("10 是正數")
    } else {
    fmt.Println("10 不是正數")
    }
    }

    📝 將判斷邏輯提取成單獨的函式,可以讓程式更簡潔且易於維護。


🎯總結

if else 是一個非常基本且重要的控制結構。通過 if else,我們能夠在程式中做出條件判斷,根據不同的情況執行不同的程式碼。掌握 if else 的使用方法,對於構建清晰且高效的程式邏輯至關重要。

回顧本文,我們介紹了 if else 的基本用法、進階技巧,並展示了一些實際應用範例。隨著你對 if else 更深入的了解,將能夠編寫出更具邏輯性和可讀性的程式。

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


註:以上參考了
Go