if else是Go語言中最基礎也最常用的條件控制語句,用于根據條件執行不同的代碼塊。下面我將詳細介紹Go語言中if else的各種用法和特性。
1.?基本語法
1.1. 最簡單的if語句
if 條件表達式 {// 條件為true時執行的代碼
}
示例:
if x > 10 {fmt.Println("x大于10")
}
1.2. if-else語句
if 條件表達式 {// 條件為true時執行的代碼
} else {// 條件為false時執行的代碼
}
示例:
if x > 10 {fmt.Println("x大于10")
} else {fmt.Println("x不大于10")
}
1.3.?if-else多分支語句
if 條件表達式1 {// 條件1為true時執行的代碼
} else if 條件表達式2 {// 條件2為true時執行的代碼
} else {// 所有條件都為false時執行的代碼
}
示例:
if score >= 90 {fmt.Println("優秀")
} else if score >= 80 {fmt.Println("良好")
} else if score >= 60 {fmt.Println("及格")
} else {fmt.Println("不及格")
}
2.?特殊用法
2.1. 在if條件前執行簡單語句
Go語言的if語句支持在條件表達式前執行一個簡單的語句,通常是短變量聲明,該語句聲明的變量作用域僅限于if語句塊內。
if 簡單語句; 條件表達式 {// 代碼塊
}
示例:
if x := getValue(); x > 10 {fmt.Println("x大于10")
} else {fmt.Println("x值為", x)
}
// 這里不能訪問x
2.2. 嵌套if語句
if語句可以嵌套使用:
if 條件1 {if 條件2 {// 代碼塊}
}
示例:
if x > 10 {if y > 20 {fmt.Println("x>10且y>20")}
}
3.?注意事項
1. 條件表達式不需要括號:Go語言的if條件表達式不需要用括號括起來,但代碼塊的花括號是必須的;
2.?花括號位置:Go語言要求if和else后面的花括號必須與條件表達式在同一行。例如:
if x > 10 {// 正確
}if x > 10
{ // 錯誤,會編譯失敗
}
3.?else必須與if的右花括號同行:
if x > 10 {// 代碼
} else { // else必須這樣寫// 代碼
}
4.?零值判斷:在Go中,可以直接使用變量作為條件,它會自動判斷是否為該類型的零值:
var s string
if s { // 相當于 if s != ""// ...
}var n int
if n { // 相當于 if n != 0// ...
}