1.switch语句
switch语句是一种分支语句(选择结构),常常用于多分支情况
1.基本语法
switch(整型表达式[int])
{
case 整形常量表达式:
语句;
}
1.利用switch语句判断星期几
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期1\n");
case 2:
printf("星期2\n");
case 3:
printf("星期3\n");
case 4:
printf("星期4\n");
case 5:
printf("星期5\n");
case 6:
printf("星期6\n");
case 7:
printf("星期日\n");
default:
printf("error");
}
return 0;
}
- 在上述的代码中,switch语句并没有加入break,就会造成如下的错误,代码虽然可以运行,但是没有达到应有的效果。
- 输入5之后,前面的语句虽然没有执行,但是后面的语句都被执行了 。
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期1\n");
break;
case 2:
printf("星期2\n");
break;
case 3:
printf("星期3\n");
break;
case 4:
printf("星期4\n");
break;
case 5:
printf("星期5\n");
break;
case 6:
printf("星期6\n");
break;
case 7:
printf("星期日\n");
break;
default:
printf("error");
break;
}
return 0;
}
- 输入break之后,就解决了上述问题。
2.利用switch语句判断工作日与休息日
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
default:
printf("error");
break;
}
return 0;
}
- 通过上述例子证明了switch语句中不是每一个case都需要break。
- 这样的书写方法适合题目中有多个case语句执行相同的代码时使用。
2.通过一道题目充分理解switch语句
- 算出m和n的值
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n) //此时n=1 case1可以执行,因为没有break,所以之后的也可以执行
{
case 1: m++;
case 2: n++;
case 3:
switch (n) //此时n=2 case1就不能执行了,但是case2可以执行
{//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;
}
- m = 5;n = 3.
2.switch语句的总结
- 尽量在switch语句的每一个case后面都加入一个break和default,如果时相同的代码可以省略break。
- default的作用:当所有的case语句都不能被执行时使用default,每一个switch语句只能使用一个default语句,default的位置随意,建议放在最后并且加入break。
- switch语句是运行嵌套的