switch语句语法结构:
switch (整形表达式)
{
语句项; //语句项是一些case语句
}
case语句语法结构:
case 整形常量表达式:
语句;
示例:
int main()
{
int dag = 0;
scanf("%d",&day);
{
case 1:
printf("现在是红灯");
break;
case 2:
printf("现在是黄灯");
break;
case 3:
printf("现在是绿灯");
break;
defaulf:
printf("红绿灯故障!");
}
}
在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。
break语句的实际效果是把语句列表划分为不同的部分。
程序好习惯:在最后一个case语句的后面加上一条break语句(之所以这么写是可以避免出现在以前的最后一个case语句后面忘了添加break语句。
default子句:当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就是会执行。
程序好习惯:在每个switch语句中都放一条default子句是个好习惯,甚至可以在后边再加一个break。
练习:此代码得数多少?
#include<stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++; //后面没有break,所以继续执行下一条语句
case 2:
n++;
case 3:
switch (n) //这里的n是2,所以不执行case 1: n++;
{
case 1:
n++;
case 2:
m++;
n++;
break; //这个break结束的是{}内的switch语句,程序依旧继续执行下一条语句
}
case 4:
m++;
break;
}
printf("m=%d,n=%d\n", m, n);
return 0;
}
答案:m=5;n=3.