嵌套
if条件满足或者不满足的时候要执行的时候要执行的仍然是if或者if-else语句,则说这个if是一个嵌套;
注:
-
else总和最近的if关联;
-
注意大括号{}的范围;
-
注意首列的对齐;
-
if (******)
if(***)
**
else
*****
//此处else与内层if关联
if (******)
if(***)
**;
else
***;
else
*****;
//此处最后一个else与第一个if关联 -
在if与else后面总用{}(即使只有一条语句)
级联的if-else
if (esp1) {
st1;
}else if (exp2) {
st2;
}else (exp3) {
st3;
}
注:着重单一出口(一个printf)
多路分支
if ( typr==1 )
printf("你好");
else if ( type==2 )
printf("早上好");
else if ( type==3 )
printf("晚上好");
else if ( type==4 )
printf("再见");
else
printf("啊,什么呀?");
//逐个执行
switch ( type ) { //控制表达式
case 1: //case 常量
printf("你好"); //语句
break;
case 2:
printf("早上好");
break;
case 3:
printf("晚上好");
break;
case 4:
printf("再见");
break;
default:
printf("啊,什么呀?");
}
//根据type的值,直接进行case 1、2、3、4与default任何一个
//只能使用int即整数型
//常量可以是一个表达式,但必须是也是常量(C99限定)
//break让进程离开switch-case
/*case只是一个跳转坐标,如果没有加break,那么进行完一个case会进入下一个case,直到遇到break离开switch-case*/
算平均数
int number;
int sum = 0;
int count = 0;
do {
scanf("%d",&number);
if ( number != -1) {
sum += number;
count ++;
}
} while ( number != -1);
printf("%f\n", 1.0*sum/count); //1.0去乘,sum变成浮点数
//另一种方法
int number;
int sum = 0;
int count = 0;
scanf("%d",&number);
while ( number != -1) {
sum += number;
count ++;
scanf("%d",&number);
}
猜数
整数的分解
判断和循环常见的错误
-
循环
-
忘记大括号——解决:在if与else都后面加入大括号;
-
if后面没有分号;
-
错误使用=和==——==是相等,=是赋值符号;
-