5.2. 选择结构-if-else
选择结构
if结构
在编程中实现选择判断结构就是用if
if**结构基本语法**
if **条件判断{**
代码语句
}**,**
条件判断如果为真(true),那么就执行大括号中的语句,如果为假(false),就不执行大括号中的语句,(大家可以想一下,什么样的表达式返回的结果要么为true,要么为false),继续执行if结构后面的代码
func main() {
//if 表达式
//{
//代码体
//}
var score int
fmt.Scan(&score)
if score > 700 {
fmt.Println("我要上清华")
}
if score > 700 {
fmt.Println("我要上清华")
} else {
fmt.Println("我要上波哥")
}
}
if else结构
基本语法
想一想:在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?
else
结构如下:
if **条件判断{**
代码语句1
}else{
代码语句2
}
首先先执行if后面的条件判断,如果条件判断成立(结果为真),执行if后面的代码语句1,代码语句1执行完成后,表示整个if—else–结构结束了(else后面的代码语句2不会执行),继续执行后面的代码。如果if后面的条件判断不成立也就是结果为假,那么if后面的代码语句1不会被执行,这时会执行else后面的代码语句2,执行完后,表示整个if—else—结构执行结束了,再执行后续的代码。
if score > 700 {
fmt.Println("我要上清华")
} else if score > 680 {
fmt.Println("我要上北大")
} else if score > 650 {
fmt.Println("我要上人大")
} else {
fmt.Println("我要上波哥")
}
if嵌套
我们上面的案例中,使用的是if-else的基本结构,其实if-else结构还可以进行嵌套使用。
三只小猪称体重 通过键盘输入三只小猪体重 找到最重的
func main() {
var a, b, c int
//10 8 12
fmt.Scan(&a, &b, &c)
if a > b {
//a重
if a > c {
fmt.Println("a最重")
} else {
fmt.Println("c最重")
}
} else {
//b重
if b > c {
fmt.Println("b最重")
} else {
fmt.Println("c最重")
}
}
}
if-else if 结构
基本语法如下:
if **条件判断{**
要执行的代码段
}else if **条件判断{**
要执行的代码段
}else if **条件判断{**
要执行的代码段
}else if**条件判断{**
要执行的代码段
}…………………………….else{
}
通过以上的语法格式我们发现,可以写很多的else if结构。
具体的执行过程:程序首先判断第一个if所带的小括号中的判断条件,如果条件成立,也就是返回一个true,
则执行该if所带的大括号中的代码,执行完成后,立即跳出if else-if结构。
如果第一个if所带的判断条件不成立,也就是返回一个false,则继续向下进行判断,依次的判断每一个if所带
的判断条件,如果成立,就执行该if所带的大括号中的代码,如果不成立,则继续向下判断,
如果每个if所带的判断条件都不成立,就看当前这个if else-if结构中是否存在else。
如果有else的话,则执行else中所带的代码,如果没有else,则整个 if-else if什么都不做。
else**可以省略。**
var score int
fmt.Scan(&score)
if score > 700 {
fmt.Println("我要上清华")
if score > 720 {
fmt.Println("我要学挖掘机")
} else if score > 710 {
fmt.Println("我要学美容美发")
} else {
fmt.Println("我要学习汽修")
}
} else if score > 680 {
fmt.Println("我要上北大")
if score > 690 {
fmt.Println("我要学盗墓")
} else {
fmt.Println("我要学习go语言")
}
}