1.switch语句表达式
switch语句也是一种分支语句,常常用于多分支的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
switch(整形表达式)
{
语句项; //是一些case语句;case必须是整形常量表达式;
}
#include<stdio.h>
int main()
{
int day=0;
scanf("%d",&day); //输入,&取地址符
switch(day) //判断day是几就执行case几
{
case 1:
printf("星期一\n");
break;
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;
}
return 0;
}
// case 表达式后面进入 break跳出
2.switch语句里面必须每个case后面都要加break吗?不一定,比如:
#include
int main()
{
int day=0;
scanf("%d",&day)
switch
{
case1:
case2:
case3:
case4:
case5:
printf("工作日");
break;
case6:
case7:
printf("休息日")
break;
}
return 0;
}
3.在switch语句可以加上default,defaul可用可无,如果需要主要是用来处理一些非法的状况;不需要default也可以在语句里面加上,处理逻辑就可以不用写,这是比较推荐的写法
#include
int main()
{
int day=0;
scanf("%d",&day)
switch
{
case1:
case2:
case3:
case4:
case5:
printf("工作日");
break;
case6:
case7:
printf("休息日")
break;
case 8:
case9:
printf("输入错误")
break;
}
return 0;
}
4.switch语句里面也可以使用if()语句
#include
int main()
{
int day=0;
scanf("%d",&day)
switch
{
case1:
if(1==day)
printf("hehe\n");
case2:
case3:
case4:
case5:
printf("工作日");
break;
case6:
case7:
printf("休息日")
break;
case 8:
case9:
printf("输入错误")
break;
}
return 0;
}
5.switch也可以嵌套使用
#include<stdio.h>
int main()
{
int n=1;
int m=2 ;
switch(n)
{
case 1:m++;
case 2:n++;
case 3:
switch(n)
{
case1:n++;
case2:m++,n++; break;
}
case 4:m++;
break;
default:
break;
}
printf("m=%d,n=%n\n",m,n);
return 0;
}
// 输出结果:m=5,n=3