switch语句
switch语句也是一种分支语句,常用于多分支的情况
switch语句的语法形式是:
switch(整型表达式)
{
语句项;
}
而语句项是什么呢?
case 整型常量表达式:
语句;
switch语句中的break
对于case 语句来说,我们day输入的多少就从case几进入,然后打印,但是由于没有break阻止其停止,所以才会全部打印出来
我们在每个case语句后加上break,效果就不一样了
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &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;
}
return 0;
}
其实每个case后的break不加也是没错的,只要复合自己的逻辑即可。
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;
}
default选项
对于所有case不能匹配的选项,我们用default
#include <stdio.h>
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("Invalid input\n");
break;
}
return 0;
}
default的位置无所谓,只要在switch语句中即可
并且switch语句允许嵌套使用
试问下面的代码输出什么呢?
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{ // switch允许嵌套使用
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}