————————Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———————
一、顺序结构
顺序结构的程序是最简单的程序。在顺序结构的程序中,程序是一条语句接一条语句顺序地往下执行。在程序中很少见到单独的顺序结构,一般都会在循环或分支结构里包含大量的顺序结构程序。
二、选择结构
选择结构就是用if语句或switch构成的语句块就是选择结构的程序。
1.if选择结构
(1)if语句
if语句的一般形式为
if(表达式) 语句;
例如:
if(i>10) printf("%d",i);
在上面的程序中,括号里的i>10是一个关系表达式,printf("%d",i);是一个语句。这条语句只有当i>10的逻辑值为真时才执行。如果i的值小于10,则不执行printf("%d",i);这条语句。
(2)if...else语句
if...else选择语句的一般形式
if(表达式)
语句块1;
else
语句块2;
(3)有多个选择分支的if语句
if(表达式1)
语句块1;
else if(表达式2)
语句块2;
else if(表达式3)
语句块3;
......
......
else if(表达式n)
语句块n;
使用注意点:
1)不要在if的小括号后面添加分号
2)像a==0这样的表达式,最好写成0==a,若你误写成0=a,编译器会直接报错
3)直接写个if(a)是可以的,C语言默认所有大于0的值都为真
使用if语句可以进行二分支选择,使用嵌套的if语句可以实现多分支选择。但是使用嵌套if 语句时,当分支数比较多,if语句的嵌套层数就会增加,使得程序很难阅读。当对某一个变量(或表达式)的不同取值进行多分支选择的时候应当使用switch语句。(注意:并不是说多分支一定用switch,一定要“注意一个变量(或表达式)的多个取值”这个条件,如果不是这个条件,比如说,是“多个变量(或表达式)的多个取值”这样的条件,那么必须使用if嵌套语句,而不能使用switch语句)。
switch语句的一般形式为:
switch(数值)
{
case 数值1;
语句1;
break;
case 数值2:
语句2;
break;
....
case 数值n:
语句n;
break;
default:
语句n;
break;
}
例如:
int a = 6;
switch (a) {
case 0:
printf("输出0");
break;
case 2:
printf("输出2");
break;
case 6:
printf("输出6");
break;
default:
printf("无输出");
break;
}
其中break的作用:
1)break关键字的作用是退出整个switch语句。默认的格式中,每个case后面都有个break,因此执行完case中的语句后,就会退出switch语句。
2)如果某个case后面没有break,意味着执行完这个case中的语句后,会按顺序执行后面所有case和default中的语句,直到遇到break为止。
3)在某些时候,不是每一个case后面一定要添加break,视程序需要而定。
总结:
if与switch的对比:
(1)if语句能完成的功能,switch语句不一定能完成。
例如:
int a = 100;
if (a > 100) //用switch判断就太麻烦,if会很方便
{
语句块;
}
(2)在有些情况下,if语句是可以和switch语句互换的,效果一样。
(3)switch能完成的功能,if语句都能完成。