一、條件判斷: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("無效選項,請重試!")
}
}
}
✅ 運行效果:用户可反覆操作,直到主動選擇退出。這就是最簡單的交互式程序!
四、本章小結 & 避坑指南
|
關鍵點
|
説明
|
|
✅ |
但 |
|
✅ |
不會“穿透”到下一個 case
|
|
✅ Go 只有 |
用它模擬 while、無限循環等
|
|
❌ 別漏寫 |
Go 強制縮進+大括號,否則編譯失敗
|
|
💡 善用 |
構建交互式命令行工具
|