C语言的分支语句解析

C语言的分支语句解析
1.if的使用
(1)if语句
作用:判断条件是否成功,成功则执行语句。
格式:
if(判断条件){
语句;

注意:执行判断条件,如果为真(非0),则执行大括号中的语句。否则不执行。

实例:

#include <stdio.h>
int main() {
int a = 10;
if( a>100 ) {
printf("a>100,a的值为%d\n",a);
}
printf("程序结束\n");
return 0;
}

运行运行程序:
程序结束
因为a>100不成立,所以不执行大括号里的语句。

(2)if-else语句
作用:判断条件是否成功或者失败,分别执行对应代码。
格式:
if(判断条件){
语句1;

else {
语句2;

注意:执行判断条件,如果为真(非0),则执行其后的大括号中的语句1;否则,执行else后大括号里的语句2。

实例:判定两个数中最大的数。

#include <stdio.h>
int main() {
int a,b;
a = 10;
b = 20;
if( a>b ) {
printf("最大数字a=%d\n",a);
}
else {
printf("最大数字b=%d\n",b);
}
return 0;
}

运行程序:
最大数字b=20
因为a>b不成立,所以不执行if后的语句,执行else后面的语句。

(3)if-else-if语句
作用:根据一个问题的多种情况,分别执行对应代码。
格式:
if(判断条件1){
语句1;

else if(判断条件2){
语句2;

else if(判断条件3){
语句3;

……
else if(判断条件n){
语句n;

else {
语句n+1;

注意:执行判断条件1,如果为真(非0),则执行其后的大括号中的语句1;如果判断条件1为假,则跳过语句1,执行判断条件2,如果为真(非0),则执行其后的大括号中的语句2;如果判断条件2为假,则跳过语句2,执行判断条件3,以此顺序执行,如果n个判断条件都为假,则执行else后面的语句n+1。

实例:输入一个百分制成绩,转换为ABCDE五级制成绩输出
A 90-100
B 80-89
C 70-79
D 60-69
E 0-59

#include <stdio.h>
int main() {
int score;
printf("请输入一个成绩:");
scanf("%d",&score);

if(score>=90 && score<=100 ){
printf("A\n");
}
else if(score>=80 && score<=89 ){
printf("B\n");
}
else if(score>=70 && score<=79 ){
printf("C\n");
}
else if(score>=60 && score<69 ){
printf("D\n");
}
else if(score>=0 && score<=59 ){
printf("E\n");
}
else {
printf("输入有误\n");
}
retrun 0;
}

运行程序:
请输入一个成绩:82
B
进行第一个判断,82不在90-100之间,不执行第一个大括号里的语句,进入下一个判断,82在80-89直接,执行第二个大括号里的语句,结束程序。

特别注意:
1)不要在跟着if的小括号后面加分号(;);
2)当if和else后的语句块只有一个语句的时候,大括号{}可以省略。

2.switch的使用
作用:根据一个问题的多种情况,分别执行对应代码。
格式:
switch(表达式) {
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
……
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}

实例:输入1-7,输出对应数字周一到周日的英文单词。

#include <stdio.h>
int main() {
int day;
printf("请输入一个数字(1-7之间):");
scanf("%d\n",&day);

switch(day) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
case 7:
printf("Sunday\n");
break;
default:
printf("输入有误\n");
break;
}
return 0;
}

运行程序:
请输入一个数字(1-7之间):6
Saturday
输入6,程序直接跳转到case 6,执行printf("Saturday\n");,然后因为其后break,直接结束程序。

switch语句的穿透问题:
当case块里不加break的时候,会发生穿透;有break可以跳出当前的seitch语句。

总结:
能用switch解决的问题,也能用if解决;反之一样。
如果要判断范围的话,用if方面;如果要判断具体某个值,并且不是很多的时候,用switch方便、简洁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值