在C语言程序的顺序执行过程中,我们有时候希望经过判断以后只执行某一行或者某一块代码,这时候常常用到分支结构,先用IF语句来实现这一功能
如:成绩查询系统,0-59输出不及格,60-69输出及格,70-79输出合格,80-89输出良好,90-100输出优秀
#include <stdio.h>
int main () {
float score;
scanf ("%f",&score);
if (score<60)printf("您的成绩不及格");
if (score>=60&&score<70)printf("您的成绩及格");
if (score>=70&&score<80)printf("您的成绩合格");
if (score>=80&&score<90)printf("您的成绩良好");
if (score>=90&&score<100)printf("您的成绩优秀");
}
通过多个if对score的判断执行特定的语句,虽然能达到目的,但是缺点也很明显,每写一个语句就要敲一长串,特别是对于等多情况的判断,if就更不方便使用了。
对于要对一个变量进行多次判断时,我们常用switch来判断,对于上面例子,我们可以改写成如下形式
#include <stdio.h>
int main () {
float score;
scanf ("%f",&score);
score = score / 10; // 取出score十位数判断
switch(score){
case 6:
printf("您的成绩及格");
case 7:
printf("您的成绩合格");
case 8:
printf("您的成绩良好");
case 9:
printf("您的成绩优秀");
case 10:
printf("您的成绩优秀");
default:
printf("您的成绩不及格");
}
}
在switch语句中,score所在的位置也可以换成表达式如换成a+b等。可以看到使用switch语句在对于判断单一值的多种情况时相较于if语句更方便,当然也可以在每个执行的语句最后加上break;退出判断,有效节省系统资源。还可以加入default用于识别不属于已知值的情况。
if和switch语句中除执行单个语句外,还可以调用函数,如:case 1: fun();关于函数的调用还会在后面详细讲解