在 Go 语言中,if
条件语句的基本语法如下:
if condition {
// 条件为 true 时执行的代码
}
1. 基本 if 语句
package main
import "fmt"
func main() {
x := 10
if x > 5 { // 不需要括号
fmt.Println("x is greater than 5")
}
}
2. if-else
if condition {
// true 分支
} else {
// false 分支
}
示例:
if x%2 == 0 {
fmt.Println("x is even")
} else {
fmt.Println("x is odd")
}
3. 多条件判断(else-if)
if condition1 {
// ...
} else if condition2 { // Go没有 "elif",直接写 else if
// ...
} else {
// ...
}
示例:
score := 85
if score >= 90 {
fmt.Println("A")
} else if score >=80 {
fmt.Println("B")
} else {
fmt.Println("C")
}
4. 带初始化的 if(特殊语法)
Go允许在 if
前执行一个简短语句(通常用于变量初始化):
if initialization; condition {
// ...
}
示例:
// file操作时常用此写法,确保err只在当前块生效。
if data, err := os.ReadFile("test.txt"); err == nil {
fmt.Printf("%s", data)
} else {
log.Fatal(err)
}
// data和err的作用域仅限于该if-else块!
⚠️注意事项:
- 条件表达式无需括号:Go的
if
条件不需要用()
包裹(加了会报错)。 - 必须显式使用布尔值:条件必须是严格布尔类型(不能像C/C++那样用
0
/非0
隐式判断)。 - 作用域隔离:在
initialization
部分声明的变量仅在当前if-else
块内有效。
如果需要更复杂的逻辑控制,可以结合 switch
或函数式编程实现。
内容由零声教学AI助手提供,问题来源于学员提问