分享

C语言的分支语句解析

 星之梦灬逝去爱 2018-02-05

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

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

实例:

#include
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
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
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
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方便、简洁。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多