这篇来说一下C语言中的if-else
内容在书7.1,7.2章.
1.if
先来看看if的结构
if(表达式(1)) { 语句(2) }
如果表达式(1)为真,就执行语句(2),否则就不执行语句(2),而是继续执行下面的代码
(1) -为真-> (2)
int main(void) {
int input;
printf("请输入一个数字:\n");
scanf("%d", &input);
if(input > 10) {
printf("你输入的数字大于10\n");
}
printf("你输入的数字是%d", input);
return 0;
}
运行结果1,if的判断为false
请输入一个数字:
7
你输入的数字是7
运行结果2,if的判断为true
请输入一个数字:
11
你输入的数字大于10
你输入的数字是11
2.if-else
还是先来看看if-else的结构
if(表达式(1)) {
语句(2)
} else {
语句(3)
}
如果表达式(1)为真,就执行语句(2),否则就不执行语句(2),而是执行(3).与单个if相比,这种模式下无论真假都会执行且只执行一条分支.
(1) -为真-> (2)
|
为假
|
(3)
int main(void) {
int input;
printf("请输入一个数字:\n");
scanf("%d", &input);
if(input > 10) {
printf("你输入的数字大于10\n");
} else {
printf("你输入的数字小于或等于10\n");
}
printf("你输入的数字是%d", input);
return 0;
}
运行结果1,if判断为true
请输入一个数字:
19
你输入的数字大于10
你输入的数字是19
运行结果2,if判断为false
请输入一个数字:
9
你输入的数字小于或等于10
你输入的数字是9
3.if-else-if
跟前面两种相比,这种拥有更多的分支,意思就是有更多的可能性.
if(表达式(1)) {
语句(2)
} else if(表达式(3)) {
语句(4)
}...{
} else {
语句(n)
}
这种结构会一个接一个的判断表达式,直到有一个表达式为真.如果所有表达式都不为真,则执行else中的语句.
(1) -为真-> (2)
|
为假 -> (3) -为真->(4)
|
为假
|
下一个else-if....
...
|
全部为假
|
(5)
这种也是无论如何都会执行一条分支.
int main(void) {
int input;
printf("请输入一个数字:\n");
scanf("%d", &input);
if(input > 10) {
printf("你输入的数字大于10\n");
} else if(input == 10){
printf("你输入的数字等于10\n");
} else {
printf("你输入的数字小于10\n");
}
printf("你输入的数字是%d", input);
return 0;
}
如果大括号内只有一条语句,那么省略掉大括号也是可以的.
int main(void) {
int input;
printf("请输入一个数字:\n");
scanf("%d", &input);
if(input > 10) printf("你输入的数字大于10\n");
else if(input == 10) printf("你输入的数字等于10\n");
else printf("你输入的数字小于10\n");
printf("你输入的数字是%d", input);
return 0;
}
if和if-else同理.
运行结果1:
请输入一个数字:
21
你输入的数字大于10
你输入的数字是21
运行结果2:
请输入一个数字:
10
你输入的数字等于10
你输入的数字是10
运行结果3:
请输入一个数字:
2
你输入的数字小于10
你输入的数字是2