if 语句
概念说明
if 用于条件判断,根据布尔表达式结果执行不同代码分支。
它是 Go 里最基础、最常用的流程控制语句之一。
在“区间判断”“输入校验”“状态分流”这类场景里会频繁使用。
语法/规则
- Go 的
if条件不需要圆括号,直接写布尔表达式即可。 - 分支代码必须写在
{}中,不能省略大括号。 - 多分支通常写成
if -> else if -> else,满足第一个条件后就不会继续判断后续分支。 - 也可以写多个并列
if,但要确保条件互斥,避免一次命中多个分支。 - 处理非法输入时,常用“卫语句(提前返回)”让主流程更清晰。
if支持“初始化语句 + 条件判断”写法:if 初始化语句; 条件 {}。- 在初始化语句里声明的变量,只在当前
if/else代码块内有效。
语法模板
| |
| |
带初始化语句的 if 示例(map 取值)
| |
输出结果(name = 阿斌):
| |
区间判断示例(卫语句写法)
下面以年龄区间为例:
age <= 0:未出生1 ~ 18:未成年19 ~ 35:青年> 35:中年
| |
输出结果(输入 12):
| |
区间判断示例(嵌套写法)
| |
输出结果(输入 30):
| |
区间判断示例(多条件并列写法)
| |
输出结果(输入 40):
| |
常见错误
- 把比较写成赋值(如
if age = 18),会导致编译报错。 - 写多个并列
if时条件没有互斥,导致一次输出多个结果。 - 边界条件写错(如
18、35)导致分类错误。 - 漏掉非法输入处理(如
age <= 0)导致逻辑不完整。 - 把
if 初始化语句; 条件中声明的变量拿到块外使用,导致“未定义”编译错误。