《分支》
1.嵌套的if语句
当if的条件满⾜或者不满⾜的时候要执⾏的语句也可以是⼀条if或if-else语句,这就是嵌套的if语句;
判断三个数中最大的数:
int a,b,c;
int max;
scanf("%d %d %d",&a,&b,&c);
if(a>b) {
if(a>c)
max = a;
else
max = c;
}
else {
if(b>c)
max = b;
else
max = c;
}
printf("max=%d",max);
2.else的匹配
else总是和最近的那个if匹配;缩进不能暗示匹配
3.if-else书写规范
-
if()后面不加分号;
-
只有一条执行代码时,可以直接写代码加分号;
-
有一个代码块时,需用大括号阔起来书写代码;
-
好习惯:在if或else后⾯总是⽤{} 即使只有⼀条语句的时候;
⼤括号内的语句缩进⼀个tab的位置;
4.级联的if-else if
if ( x < 0 ) {
printf("%d", -1);
} else if ( x == 0 ) {
printf("%d", 0);
} else {
printf("%d", 2 * x);
}
程序只有在三种情况下只有单一出口;
5.switch-case多路分支
switch ( 控制表达式 ) {
case 常量:
语句
……
case 常量:
语句
……
default:
语句
……
}
- 控制表达式只能是整数型的结果
- 常量可以是常数,也可以是常数计算的表达式
- 根据表达式的结果,寻找匹配的case,并执⾏case后⾯的语句,⼀直到break为⽌
- 如果所有的case都不匹配,那么就执⾏default后⾯的语句;如果没有default,那么就什么
都不做;
switch ( type ) {
case 1:
printf("你好");
break;
case 2:
printf("早上好");
break;
case 3:
printf("晚上好");
break;
case 4:
printf("再⻅");
break;
default:
printf("啊,什么啊?");
}
6.break
switch语句可以看作是⼀种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分⽀标号)处。分⽀标号只是说明switch内部位置的路标,在执⾏完分⽀中的最后⼀条语句后,如果后⾯没有break,就会顺序执⾏到下⾯的case⾥去,直到遇到⼀个break,或者switch结束为止。