第三章 三大结构 | 分支结构
if语句
语句结构
if (condition1 || condition2) {
// input the function
} else if (condition3 && condition4){
// input the function
} else {
// input the function
}
关系运算符
运算符 | 名称 | |
---|---|---|
< | 小于 | |
<= | 小于或等于 | |
> | 大于 | |
>= | 大于或等于 | |
== | 等于 | |
!= | 不等于 | |
&& | 表示“and” | |
倘若我在condition
的位置上变成赋值语句,那会怎么样。
当赋0
时,返回假;当赋除0
以外的其他值时,返回真。
注意
- 无论如何,都要写
{}
,否则就会只运行if
的下一行语句。 else
的归属权:如果没有{}
,else
只与最靠近它的,且没有else
的if
匹配。不看对齐。
嵌套判断
就像下面这样的
if (condition_1) {
if (condition_2) {
// to do
} else {
// to do
}
} else {
// to do
}
意思就是无论if
的判断如何,还得要再执行一个if
,那么这就是嵌套
else
总是和最近的if
相匹配,缩进也不能暗示相匹配。
我们用翁凯老师的写的例子来说明
#include <stdio.h>
int main() {
int gameover = 0,count = 10;
if (gameover == 0)
if ( count > 20)
printf("player A win");
else
printf("player B win");
return 0;
}
我们认为gameover
为0
,且count
大于20
的时候palyer A
获胜。
但结果是
player B win
也就是说,else
被当做是if ( count > 20)
的else
所以,无论如何,在if
和else
的后面都要敲{}
。
级联判断
形如
if (condition1 || condition2) {
// input the function
} else if (condition3 && condition4){
// input the function
} else {
// input the function
}
switch-case语句
语句结构
switch(表达式){
case 常量表达式:
语句1;
break;
case 常量表达式:
语句2;
break;
default: // default是在前面情况找不到任何的匹配之后才会运行
语句;
break;
}
如果不写break
会怎么样,就像下面的代码
#include <stdio.h>
int main() {
for(int i=0;i<3;i++){
switch (i) {
case 1:
printf("%d",i);
case 2:
printf("%d",i);
default:
printf("%d",i);
}
}
}
会返回011122
注意
- 如果不写
break
;,就会导致继续执行,不会跳出,而是会连续执行,如果有defult
,则也会跑到defult
。case
只是一个“站牌”,竖起一个入口而已。 - 这个
break
;只能跳出switch-case
用switch-case
的好处就是不用像if-else
,if-else
语句那样逐一判断。
本文来自博客园,作者:Mryan2005,转载请注明原文链接:https://www.cnblogs.com/Mryan2005/p/17872802.html