目录
if语句
嵌套的if-else
1.嵌套的判断
当if条件满足或不满足的时候要执行的语句也可以是一条if语句或if-else语句,这就是嵌套的if语句
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d", &a, &b, &c);
int max = 0;
if ( a>b ) {
if ( a>c ) {
max = a;
} else {
max = c;
}
} else {
if ( b>c ) {
max = b;
} else {
max = c;
}
}
printf("The max is %d\n", max);
return 0;
}
在比较a、b、c的大小中,可以发现嵌套if-else的一个原则:else总是与前面最近的未配对的 if 进行配对(就近原则)。这样利用嵌套可以得出我们想要的答案。
2级联的if-else
当我们遇到一个分段函数例如:fx) = -1;x<0 就可以使用级联的if语句
0; ×=0
2x;x>0
级联的基本模板if ( exp| )
stl;
'else if ( exp2)
st2; else
st3;
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
int f=0;
if(x<0){
f=-1;
}else{
if(x==0){
f=0;
}else{
f=2*x;
}
}
printf("%d\n",f);
return 0;
}
3多路分支
同一段代码,if语句与Switch-case语句的比较:
if语句
if (type == 1)
printf("您好!");
else if (type == 2)
printf("早上好!");
else if (type == 3)
printf("晚上好!");
else if (type == 4)
printf("再见!");
else
printf("啊,啊什么啊?");
switch-case语句
switch (type)
{
case 1:
printf("您好!");
break;
case 2:
printf("早上好!");
break;
case 3:
printf("晚上好!");
break;
case 4:
printf("再见!");
break;
default:
printf("啊,啊什么啊?");
switch语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分支标号)处。
分支标号只是说明switch内部位置的路标,在执行完分支中的最后一条语句后
如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者switch结束为止。
循环
if语句可以判断条件是否满足,满足时才做相应的动作,而循环语句可以在满足条件时,不断地重复执行一些动作。
重复执行的语句(循环语句)可以多次执行其他语句,它检查一个逻辑条件是否满足,只在满足的时候执行它的循环体。
while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。
do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。