【go】 if条件控制语句
Go 语言中的 if
条件控制语句用于根据条件判断执行不同的代码块。它支持基本条件判断、带初始化语句的 if
、if-else
、if-else if-else
结构,以及嵌套 if
。下面我们逐一介绍并给出代码示例。
一、基本 if
语句
语法结构:
if condition {// 当 condition 为 true 时执行
}
示例:
package main
import "fmt"
func main() {age := 18if age >= 18 {fmt.Println("成年人")}
}
输出:
成年人
二、if-else
语句
语法结构:
if condition {// 条件为 true 时执行
} else {// 条件为 false 时执行
}
示例:
package main
import "fmt"
func main() {age := 16if age >= 18 {fmt.Println("成年人")} else {fmt.Println("未成年")}
}
输出:
未成年
三、if-else if-else
多条件判断
语法结构:
if condition1 {// condition1 为 true 时执行
} else if condition2 {// condition2 为 true 时执行
} else {// 都不满足时执行
}
示例:
package main
import "fmt"
func main() {score := 85if score >= 90 {fmt.Println("优秀")} else if score >= 80 {fmt.Println("良好")} else if score >= 60 {fmt.Println("及格")} else {fmt.Println("不及格")}
}
输出:
良好
四、带初始化语句的 if
Go 支持在 if
语句中初始化变量,这些变量的作用域仅限于 if
块。
语法结构:
if stmt; condition {// 使用 stmt 初始化的变量
}
示例:
package main
import "fmt"
func main() {if x := 10; x > 5 {fmt.Println("x 大于 5")}// fmt.Println(x) // 编译错误,x 的作用域仅限于 if 块
}
输出:
x 大于 5
五、嵌套 if
语句
可以在一个 if
块中再嵌套另一个 if
语句。
示例:
package main
import "fmt"
func main() {age := 22if age >= 18 {if age >= 60 {fmt.Println("老年人")} else {fmt.Println("青年人")}} else {fmt.Println("未成年")}
}
输出:
青年人
六、注意事项
- 条件表达式必须为布尔类型:Go 是强类型语言,
if
的条件必须是bool
类型,不能像 C 语言那样用整数值表示真假。// 错误示例 if 1 { // 编译错误fmt.Println("true") }
{}
必须成对出现且位置固定:Go 不允许将{
放在下一行,必须紧跟在条件之后。// 错误示例 if age > 18 { // 编译错误fmt.Println("adult") }
- 变量作用域:带初始化的
if
中定义的变量,作用域仅限于该if
块。
七、总结
Go 的 if
条件控制语句简洁而强大,支持多种判断结构和初始化语句。其语法严格,有助于减少常见错误,提高代码可读性和可维护性。在实际开发中,合理使用 if
控制结构是编写健壮逻辑的基础。