您的位置:首页 > 编程语言 > C语言/C++

C语言的分支语句解析

2015-10-17 23:00 323 查看
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方便、简洁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: