单层次选择结构:
if语句:if语句是一种选择结构,一般表达式为(不带else):
if(表达式)语句
实例:if( a > b ) printf("%d,a");
实现的效果为:如果数字a大于数字b,则输出数字a
带 else的表示:
if(表达式)语句1;
else 语句2;
实例:
if( a > b )
printf("%d,a");
else
printf("%d,b");
效果:
如果a大于b就输出a,否则输出b
使用嵌套的if语句实现多层次条件判断
一般表达式为:
1、
if(){
if() 语句1;
else 语句2;
}else{
if() 语句3;
else 语句4;
}
2、
if() 语句1;
else if() 语句2;
else if() 语句3;
...
else if() 语句4;
else 语句5;
}
1和2的差别是:1会把每一个分支都走一遍,而2只要找到对应的表达式判断就不会再走其他的分支;
下面介绍另一种多分支结构:
switch语句
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
...
case 常量表达式n:
语句n;
break;
default:
语句n+1;
}
实例:
switch(grade){
case 'A': printf("90~100");
case 'B': printf("80~90");
case 'C': printf("70~80");
case 'D': printf("60~70");
case 'E': printf("<60");
default: printf("erro");
}
如果上面的grade等于A,则输出90~100;注意一定要加break,否则会连续输出后续的分支;此处break语句用于终止整个switch语句;
循环语句
while和do while语句
while的特点是:先判断表达式,再执行循环体
do while的特点是:先执行循环体,再判断表达式;所以do while不论是否满足表达式,循环体都会执行一次;
实例:求1到100的和;
while(i<=100){
i++;
sum +=i;
}
do{
i++;
sum +=i;
}while(i<=100)
两中效果一样,都会算出1~100的和;
for语句
for语句也可以实现循环效果 ,一般形式为:
for(表达式1;表达式2;表达式3)语句;
任然用上述例子:
for(i=0;i<=100;i++) sum+=i;
效果一样会求出1~100之和;