c语⾔switch函数的作⽤,C语⾔switch语句的⽤法详解
C语⾔虽然没有限制 if else 能够处理的分⽀数量,但当分⽀过多时,⽤ if else 处理会不太⽅便,⽽且容易出现 if else 配对出错的情况。例如,输⼊⼀个整数,输出该整数对应的星期⼏的英⽂表⽰:
#include
int main(){
int a;
printf("Input integer number:");
scanf("%d",&a);
if(a==1){
printf("Monday\n");
}else if(a==2){
printf("Tuesday\n");
}else if(a==3){
printf("Wednesday\n");
}else if(a==4){
printf("Thursday\n");
}else if(a==5){
printf("Friday\n");
}else if(a==6){
printf("Saturday\n");
}else if(a==7){
printf("Sunday\n");
}else{
printf("error\n");
}
switch函数用法举例return 0;
}
运⾏结果:
Input integer number:3
Wednesday
C语⾔还提供了另外⼀种多分⽀选择的语句——switch 语句,它的基本语法格式如下:
switch(表达式){
case 常量表达式1: 语句 1;
case 常量表达式2: 语句 2;
.
.....
case 常量表达式n: 语句 n;
default: 语句 n+1;
}
它的执⾏过程是:⾸先计算“表达式”的值,然后从第⼀个 case 开始,与“常量表达式x”进⾏⽐较,如果与当前常量表达式的值不相等,那么就不执⾏冒号后边的语句 x,⼀旦发现和某个常量表达式的值相等了,那么它会执⾏之后所有的语句,如果直到最后⼀个“常量表达式 n”都没有到相等的值,那么就执⾏ default 后的“语句 n+1”。
需要注意的是,当到⼀个相等的 case 分⽀后,会执⾏该分⽀以及之后所有分⽀的语句。例如:
#include
int main(){
int a;
printf("Input integer number:");
scanf("%d",&a);
switch(a){
case 1: printf("Monday\n");
case 2: printf("Tuesday\n");
case 3: printf("Wednesday\n");
case 4: printf("Thursday\n");
case 5: printf("Friday\n");
case 6: printf("Saturday\n");
case 7: printf("Sunday\n");
default:printf("error\n");
}
return 0;
}
运⾏结果:
Input integer number:4
Thursday
Friday
Saturday
Sunday
error
输⼊4,发现和第四个分⽀匹配,于是就执⾏第四个分⽀以及后⾯的所有分⽀。这显然不是我们想要的结果,我们希望只执⾏第四个分⽀,跳过后⾯的所有分⽀。
为了避免这种情况,C语⾔还提供了⼀个关键字 break,专门⽤于跳出switch语句。
switch 的分⽀语句⼀共有 n+1 种,⽽我们通常希望的都是选择其中的⼀个分⽀来执⾏,执⾏完后就结束整个 switch 语句,⽽继续执⾏switch后⾯的语句,此时就可以通过在每个分⽀后加上 break 语句来实现了。如下:
switch (表达式){
case 常量表达式1: 语句1; break;
case 常量表达式2: 语句2; break;
......
case 常量表达式n: 语句n; break;
default: 语句n+1; break;
}
加了这个 break 语句后,⼀旦“常量表达式 x”与“表达式”的值相等了,那么就执⾏“语句 x”,执⾏完毕后,
由于有了 break 则直接跳出 switch 语句,继续执⾏ switch 语句后⾯的程序了,这样就可以避免执⾏不必要的语句。
使⽤switch语句修改上⾯的代码:
#include
int main(){
int a;
printf("Input integer number:");
scanf("%d",&a);
switch(a){
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("error\n"); break;
}
return 0;
}
运⾏结果:
Input integer number:4
Thursday
值得⼀提的是,由于default是最后⼀个分⽀,匹配后不会再执⾏其他分⽀,所以也可以不⽤break;语句。
以上就是对C语⾔switch语句的资料整理,学习 C语⾔条件语句的同学可以参考下。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论