07_条件语句与switch
写 `if`、`else if`、`switch`,并掌握短声明的作用域。
Go 基础专题 07:条件语句与 switch
学习目标:写
if、else if、switch,并掌握短声明的作用域。
核心知识
Go 的 if 条件不需要圆括号,但必须是布尔表达式。else 必须接在前一块的右花括号同一行。if value, err := parse(); err != nil { ... } 可以先执行短语句;其中声明的名字在整个 if、else 结构内可见,结束后失效。
package main
import "fmt"
func grade(score int) string {
if score < 0 || score > 100 {
return "无效"
} else if score >= 60 {
return "及格"
}
return "继续练习"
}
func main() { fmt.Println(grade(75)) }
switch value 按顺序匹配 case,默认自动离开,不需要写 break。多个值可共用一个 case,default 处理其余情况。无表达式的 switch 可以代替一串复杂 if,例如 switch { case score >= 90: ... }。fallthrough 会强制进入下一分支,但通常会让逻辑难懂,少用。
边界先处理异常范围再处理正常范围,避免把 -1 误判为普通“不及格”。复杂布尔表达式可拆成有意义的局部变量。
逐步理解
把 grade 的输入分成无效、及格、不及格三组,分别测试 -1、0、59、60、100、101。switch 与 if 都能表达分支,选择能最清楚呈现规则的一种。多个 case 之间默认不贯穿,是 Go 与一些语言的差别;不要为普通分支添加多余 break。
动手练习
练习:把 "create"、"list"、其他命令映射到三个不同的提示。答案要点:用 switch command 的两个 case 和 default。