# 编程 分支模型(条件选择) ## 单分支 ```go if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ } ``` ```go // 单分支 // 判断分数 及格还是不及格 var score int = 59 if score >= 60 { println("及格") } else { println("不及格") } ``` ## 多分支 ```go if 布尔表达式 1 { /* 在布尔表达式 1 为 true 时执行 */ } else if 布尔表达式 2 { /* 在布尔表达式 1 为 true 时执行 */ } else if 布尔表达式 n { /* 在布尔表达式 1 为 true 时执行 */ } else { /* 以上条件都不满足时执行 */ } ``` ```go score = 85 // 多分支 // 判断分数 优秀 良好 中等 及格 不及格 if score >= 90 { println("优秀") } else if score >= 80 { println("良好") } else if score >= 70 { println("中等") } else if score >= 60 { println("及格") } else { println("不及格") } ``` ## 嵌套 ```go // 身高1.8m以上, 25 ~ 35岁, 男 func (p *Person) Passed() bool { if p.height > 1.8 { if p.age > 25 && p.age <= 35 { if p.gender == "male" { return true } } } return false } ``` ## 多分支优化语法(switch case) 多分支模型的优化语法 ```go score = 85 // 多分支 // 判断分数 优秀 良好 中等 及格 不及格 if score >= 90 { println("优秀") } else if score >= 80 { println("良好") } else if score >= 70 { println("中等") } else if score >= 60 { println("及格") } else { println("不及格") } ``` ```go // switch 多分支 进行重写 switch { case score >= 90: println("优秀") case score >= 80: println("良好") case score >= 70: println("中等") case score >= 60: println("及格") default: println("不及格") } ``` ## 多分支 并行执行 ```go // switch 多分支 进行重写 switch { case score >= 90: println("优秀") case score >= 80: println("良好") fallthrough case score >= 70: println("中等") case score >= 60: println("及格") fallthrough default: println("不及格") } ```