什么时候会用到switch语句?
在初始C语言时,我们学会了if语句,用来处理多个条件选择。但当选择过多时,使用if语句反而使程序变得更复杂。这时,我们就可以利用switch语句来解决。
switch的语法规则
通常情况下,switch一般与case、break、default配合使用。case决定入口,break决定出口,default表示各个case都不满足的其他情况,那么如何配合使用呢?
基本格式为:
switch(整型表达式)
{
//switch语句通过将整型表达式的值与整型常量值进行比对,相等则执行对应的case
case 整型常量1:语句1;
break;
case 整型常量2:语句2;
break;
……
default:语句3;//default表示没有匹配上的情况
break;
}
注意:switch语句后的控制表达式只能是short、char、int、long这样的整数类型和枚举类型,不能是float,double和boolean类型!
举例说明
例如:
#include <stdio.h>
//实现如果输入1,打印星期一;如果输入2,打印星期二……
int main()
{
int day = 0;
scanf("%d",&day);//输入day数字
switch (day) //将输入的day的值与case后的值进行比对,相等则执行对应的case
{
case 1:
printf("星期一\n");
break; //这里的每一个case后面,都需要有一个break,表示跳出switch语句
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\n");
break;
}
return 0;
}
执行结果为:
如果每个case后面没有跟break,会是以下效果:
因为switch语句中,只有遇到break才会跳出,否则就会继续往下执行。
当然,break不是必须要有,语句也可以是空语句。可根据想要的逻辑来实现。
例如:
#include <stdio.h>
//实现如果输入1或2或3或4或5,打印工作日;如果输入6或7,打印休息日
int main()
{
int day = 0;
scanf("%d",&day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
}
return 0;
}
执行结果为:
如果用户输入的值,各个case都不满足,没有匹配上的话,就可以利用default了
例如:
#include <stdio.h>
//实现如果输入1或2或3或4或5,打印工作日;如果输入6或7,打印休息日
int main()
{
int day = 0;
scanf("%d",&day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入错误,请输入1-7的数字");
break;
}
return 0;
}
执行结果为:
以上就是关于switch语句的使用方法啦