一、條件判斷:if 和 switch

1. if 語句 —— 最基礎的“決策者”

Go 的 if 很像 C 或 Java,但不需要括號,且必須用大括號 {}

package main

import "fmt"

func main() {
    temperature := 28

    if temperature > 30 {
        fmt.Println("太熱了,開空調!")
    } else if temperature > 20 {
        fmt.Println("天氣正好,出門散步吧~")
    } else {
        fmt.Println("有點冷,加件外套。")
    }
}

💡 Go 特色:你甚至可以在 if 中先聲明一個變量,作用域僅限於該 if 塊!

if age := 17; age < 18 {
    fmt.Println("未成年,不能進網吧")
} // age 在這裏就“消失”了

2. switch 語句 —— 多選一的優雅寫法

當選項很多時,switch 比一連串 if-else 更清晰。

score := 85

switch {
case score >= 90:
    fmt.Println("A:優秀!")
case score >= 80:
    fmt.Println("B:良好,繼續加油!")
case score >= 60:
    fmt.Println("C:及格萬歲!")
default:
    fmt.Println("D:需要補考 😢")
}

🌟 注意:Go 的 switch 不需要寫 break!執行完一個 case 會自動跳出,避免“貫穿”錯誤。

你也可以直接對某個值做判斷:

day := "Monday"
switch day {
case "Monday":
    fmt.Println("週一綜合徵...")
case "Friday":
    fmt.Println("終於等到你!週末快樂!")
default:
    fmt.Println("又是平凡的一天")
}

二、循環:Go 只有一個 for,但很強大!

和其他語言不同,Go 沒有 while,也沒有 do-while——它只用 for 就搞定所有循環!

1. 經典三段式(類似 C 語言)

for i := 1; i <= 5; i++ {
    fmt.Printf("第 %d 次:Go is awesome!\n", i)
}

2. 模擬 while 循環(只有條件)

count := 3
for count > 0 {
    fmt.Printf("%d...\n", count)
    count--
}
fmt.Println("Go! 🚀")

3. 無限循環(小心使用!)

for {
    fmt.Println("我停不下來了!按 Ctrl+C 退出")
    // 實際開發中常配合 break 使用
}

⚠️ 重要提醒:Go 的 for 循環必須用大括號,即使只有一行代碼!這是 Go 強制代碼風格的一部分。

三、實戰小項目:簡易菜單系統

結合 for + switch,做一個命令行小菜單:

package main

import (
    "fmt"
)

func main() {
    for {
        fmt.Println("\n=== 歡迎使用 Go 小助手 ===")
        fmt.Println("1. 打招呼")
        fmt.Println("2. 計算平方")
        fmt.Println("3. 退出")
        fmt.Print("請選擇 (1-3): ")

        var choice int
        fmt.Scanf("%d", &choice)

        switch choice {
        case 1:
            fmt.Println("Hello, Gopher! 🐹")
        case 2:
            fmt.Print("請輸入一個數字: ")
            var n int
            fmt.Scanf("%d", &n)
            fmt.Printf("%d 的平方是 %d\n", n, n*n)
        case 3:
            fmt.Println("再見!👋")
            return // 退出主函數,結束程序
        default:
            fmt.Println("無效選項,請重試!")
        }
    }
}

✅ 運行效果:用户可反覆操作,直到主動選擇退出。這就是最簡單的交互式程序!

四、本章小結 & 避坑指南

關鍵點

説明

✅ if 條件不用括號

但 {} 必須有!

✅ switch 自動 break

不會“穿透”到下一個 case

✅ Go 只有 for 循環

用它模擬 while、無限循環等

❌ 別漏寫 {}

Go 強制縮進+大括號,否則編譯失敗

💡 善用 for + switch

構建交互式命令行工具