【C语言—零基础第七课】顺序结构与选择结构
目录
导入
人生都是按照顺序来的,没有彩排。从我们出生到我们上学、然后我们开始工作、结婚、生子迈向中年、老年最后我们和这个世界告别一步一步按照顺序来的一般不会出现刚出生就是老年人,C语言中的顺序结构也是如此。
人生是由许许多多的选择构成的,有些选择是我们主动的选择当然有些选择也是我们被迫做出的选择。你愿意也好不愿意也罢你都必须做出选择。例如:你为了出人头地在大城市买房子,你可以选择做
做生意来赚钱、你可以选择做程序员来赚钱、你也可以选择好好学习用自己的知识来赚钱、你也可以跑出租、送外卖、送快递只要不是违法的就可以。这就是我们这章的顺序结构中的选择结构。我想问你?你学习C语言也是的你自己主动做出的选择还是被迫做出的选择。
就如同人生一样,C程序中也存在着选择,C语言提供了两种选择语句。
If 和 switch
顺序结构
下面就是个顺序结构的代码,从上到下依次执行。
int a,b,c; a=1; b=2; c=3;
选择结构
在学习选择结构之前我们需要了解以下C语言中的逻辑值
在C语言中非0当作正值,0当作假
关系运算符
>、<、==等于、!=不等于、>=、<=
成立则为真,不成立则为假
printf("%d",3 > 5);
结果 0
printf("%d",3 <5);
结果 1
逻辑运算符
!非 &&与 ||或
优先级 !>&&>||
结合性:!自左向右 &&||自右向左
逻辑表达式
&&
0&&1=0 1&&0=0 0&&0=0 1&&1=0
||
0||1=1 1||0=1 0||0=0 1||1=0
!
!0=1 !1=0
printf("%d\n",!3); printf("%d\n", !0); printf("%d\n", -1&&0); printf("%d\n", -1 && 1); printf("%d\n", 5 && 0); printf("%d\n", -1 || 0); printf("%d\n", -1 || 1); printf("%d\n", 5 || 0); printf("%d\n", 0 || 0);
结果
0
1
0
1
0
1
1
1
0
If条件语句
单分支
格式:if(条件) {
语句;
}
if (5>2) { printf("吃饭"); }
结果 :吃饭
if (0>2) { printf("吃饭"); }
结果 :
条件不成立
条件成立则执行语句块中的语句,不成立不执行
双分支
格式:if(条件) {
语句1;
}else{
语句2;
}
if (0>2) { printf("吃饭"); } else { printf("睡觉"); }
结果 :睡觉
条件成立则执行语句块中的语句,条件不成立则执行else中的语句块
多分支
格式:if(条件) {
语句1;
}else if(){
语句2;
} else if(){
语句2;
} else if(){
语句n;
}
else{
}
int a = 2; if (a==0) { printf("吃饭"); } else if(a == 1) { printf("睡觉"); } else if (a == 2) { printf("写博客"); }else{ printf("不写博客"); }
结果 :写博客
根据判断条件成立执行那条语句
If语句可以省略else
Switch条件语句
格式:
switch(表达式){
case 常量1: 语句; (break;)
case 常量2: 语句;(break;)
case 常量n: 语句;(break;)
default:常量n+1 语句;
}
switch(表达式)表达式里边必须为字符型和整型表达式。
case 常量1、2、3等和default都是起标号作用的。
break;跳出switch代码块。
default:如果表达式判断case 常量全部都不满足则执行default中的语句。可以没有default,如果case 常量 没有与条件表单时相匹配的则跳出switch代码块。
先判断表达式中的值,是否等于case中的常量。如果等于则执行case 中的语句;执行完毕后看看是否右break语句有则结束,没有break则往下执行直到遇到break语句或者执行完毕switch代码块中的所有内容。
int a = 0; switch (a) { case 0: printf("零\n"); case 1: printf("一\n"); case 2: printf("二\n"); case 3: printf("三\n"); default: printf("其他\n"); }
结果 :
零
一
二
三
其他
int a = 0; switch (a) { case 0: printf("零\n");break; case 1: printf("一\n"); case 2: printf("二\n"); case 3: printf("三\n"); default: printf("其他\n"); }
结果 :
零
int a = 0; switch (a) { case 0: printf("零\n"); case 1: printf("一\n"); case 2: printf("二\n"); case 3: printf("三\n");break; default: printf("其他\n");
结果 :
零
一
二
三
int a = 5; switch (a) { case 0: printf("零\n"); case 1: printf("一\n"); case 2: printf("二\n"); case 3: printf("三\n"); default: printf("其他\n");