switch语句是一种特殊形式的if else结构,用于判断条件有多个结果的情况,把多重的else if改为更易用、可读性更好的形式。
switch的基本语法格式:
switch(expression)
{
case value_1:statement;
case value_2:statement;
case value_3:statement;
default:statement;
}
注意:
- expression必须为整型表达式;
- case的值必须为整型常量表达式;
switch语句中的break
举例:输入任意一个整数值,计算除3之后的余数。
#include<stdio.h>
//使用switch结构,输入任意一个整数,计算除3之后的余数
int main()
{
int input;
int remain;
while (scanf("%d",&input)!=EOF)
{
remain = input % 3;
switch (remain)
{
case 0:
printf("余数为0\n");
break;
case 1:
printf("余数为1\n");
break;
case 2:
printf("余数为2\n");
break;
}
}
return 0;
}
注意:
- case和后面的数字之间必须有空格;
- 在每一个case语句中的代码执行完成后,需要加上break跳出循环,否则将继续执行下面的case,直到遇到break才会跳出或者switch语句结束;
switch语句中的default
在使用switch语句时,如果遇到switch后的表达式中的值都无法与代码中的case语句匹配时,就需要加入default进行处理。
举例:输入1-5对应工作日,输入6、7对应休息日,如果无法匹配则提示输入错误
#include<stdio.h>
//输入1-5对应工作日,输入6、7对应休息日,否则提示输入错误
int main()
{
int input;
while (scanf("%d", &input) != EOF)
{
switch (input)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
}
return 0;
}
注:
switch语句中的case和default的顺序问题
在switch语句中,case语句和default语句是没有顺序要求的,满足实际需求即可。不过,通常是把default字句放在最后处理。