多分支
- 基本语法
if 条件表达式1{ 执行代码块1 }else if{ 执行代码块2 } ... else{ 执行代码块n }
- 说明:
- 多分支的判断流程如下:
- 先判断条件表达式 1 是否成立,如果为真,就执行代码块 1
- 如果条件表达式 1 如果为假,就去判断条件表达式 2 是否成立
- 如果条件表达式 2 为真,就执行代码块 2
- 依次类推如果所有的条件表达式不成立,则执行 else 的语句块
- else 不是必须的。
- 多分支只能有一个执行入口。
- 个多分支的流程图
- 演示案例
- 岳小鹏参加 Golang 考试,他和父亲岳不群达成承诺,如果:
- 成绩为 100 分时,奖励一辆 BMW;
- 成绩为(80,99]时,奖励一台 iphone7plus;
- 当成绩为[60,80]时,奖励一个 iPad;
- 其它时,什么奖励也没有。
- 请从键盘输入岳小鹏的期末成绩,并加以判断
//成绩为 100 分时,奖励一辆 BMW; //成绩为(80,99]时,奖励一台 iphone7plus; //当成绩为[60,80]时,奖励一个 iPad; //其它时,什么奖励也没有。 //请从键盘输入岳小鹏的期末成绩,并加以判断 var score byte fmt.Println("请输入成绩:") fmt.Scanln(&score) //多分支判断 if score == 100{ fmt.Println("奖励一辆 BMW") }else if score > 80 && score <= 90{ fmt.Println("奖励一台 iphone7plus") }else if score >= 60 && score <= 80{ fmt.Println("奖励一个 iPad") }else { fmt.Println("什么奖励也没有") }
- 输出结果:
- 使用陷阱
多分支应用案例
演示案例1:
演示案例2:
var a float64 = 2.0 var b float64 = 4.0 var c float64 = 2.0 m := b * b - 4 * a * c //多分支判断 if m > 0 { x1 := (-b + math.Sqrt(m)) / 2 * a x2 := (-b - math.Sqrt(m)) / 2 * a fmt.Printf("x1=%v x2=%v", x1, x2) } else if m == 0 { x1 := (-b + math.Sqrt(m)) / 2 * a fmt.Printf("x1=%v", x1) } else { fmt.Println("无解...") }
演示案例3
//分析思路 //1. 应该设计三个变量 var height int32 | var money float32 | var handsome bool //2. 而且需要从终端输入 fmt.Scanln //3. 使用多分支if--else if -- else var height int32 var money float32 var handsome bool fmt.Println("请输入身高(厘米)") fmt.Scanln(&height) fmt.Println("请输入财富(千万)") fmt.Scanln(&money) fmt.Println("请输入是否帅(true/false)") fmt.Scanln(&handsome) if height > 180 && money > 1.0 && handsome { fmt.Println("我一定要嫁给他!!!") } else if height > 180 || money > 1.0 || handsome { fmt.Println("嫁吧,比上不足,比下有余") } else { fmt.Println("不嫁....") }