Go | 如果這樣,不然就那樣
💬 簡介
if else
是控制流程中最常用的語句之一。它允許程式根據條件來決定接下來該執行哪一段程式碼。
本文將介紹 if else
的基本用法,並展示如何利用它來實現程式中的條件判斷與分岔決策。
圖片來源:Gophers(地鼠造型的原創者為 Renee French)
📚 if else 基本結構
if else
的基本語法結構如下:
1 | if 條件 { |
if
語句會檢查條件是否為真(true
)。如果條件為真,則執行大括號內的程式碼,否則執行 else
部分的程式碼。
1️⃣ 基本範例
- 範例:執行結果:
1
2
3
4
5
6
7
8
9
10
11
12package 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
語句會根據布林值的 true
或 false
來進行分岔決策。這是最常見的一種情況,當我們需要根據條件進行不同的處理時,非常有用。
- 範例:執行結果:
1
2
3
4
5
6
7
8
9
10
11
12
13package 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
14package 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
11package 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
13package main
import "fmt"
func main() {
a := 3
b := 7
if a > b {
fmt.Println("a 比 b 大")
} else {
fmt.Println("b 比 a 大")
}
}1
b 比 a 大
📝 這個範例展示了如何使用
if else
判斷兩個數字的大小。
2️⃣ 使用 if else
驗證用戶輸入
我們也可以使用 if else
來驗證用戶輸入的資料是否合法。例如,以下程式碼驗證用戶是否輸入了有效的年齡。
- 範例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package 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
16package main
import "fmt"
func checkNumber(x int) {
if x > 0 {
fmt.Println("x 是正數")
return
}
fmt.Println("x 是非正數")
}
func main() {
checkNumber(5)
checkNumber(-2)
}1
2x 是正數
x 是非正數📝 在這個範例中,我們使用
return
來結束函式,這樣程式邏輯更為簡潔。
2️⃣ 避免複雜的條件判斷
過多的 if else
可能會讓程式邏輯變得複雜,因此有時候可以考慮將條件判斷提取為單獨的函式,這樣能使程式更具可讀性和可維護性。
- 範例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package 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