基本格式:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
scanf("%d",&a);
switch(a)
{
case 1:
printf("11\n");
case 2:
printf("22\n");
default: ;
}
}
注意的点:
1.switch的括号里面的东西必须是整形(整形常量或者整数都可以)或者常量表达式(a+b这种)
2.case 后面跟的必须是常量(1,2,3,这种),结尾加冒号,语句数大于等于2的时候要加{},组成语句块
3.switch语句里面不能够出现continue但是可以有if,例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
scanf("%d",&a);
switch(a)
{
case 1:
printf("11\n");
case 2:
printf("22\n");
case 3:
{
int b = 4;
if(a < b)
printf("啊这\n");
}
default:;
}
}//这个例子只是想说明Switch语句里面可以套if
4.Switch语句里面可以套switch,例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,n;
m = n = 1;
switch(m)
{
case 1:
{
m++;
n++;
printf("%d\n",m);
}
case 2:
{
switch(n)
{
case 1:
n++;
case 2:
{
m++;
n++;
}
}
}
}
printf("%d\n%d",m,n);
}
5.case的作用是提供入口,满足case后面的条件就会进入这个入口,而该入口后面不管有多少个case,其中的内容都会被执行,例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 1;
switch(a)
{
case 1:
printf("!\n");
case 2:
printf("?\n");
case 3:
printf(".\n");
default:
printf("错啦!");
}
}//满足第一个case的条件,进入Switch语句,之后case后面所有的语句都被执行,包括default里面的语句,打印结果为:
!
?
.
错啦!
如果想要在满足一个case的时候循环终止,可以在case语句的末尾加个break,例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
scanf("%d",&a);
switch(a)
{
case 1:
{
printf("lalala");
break;
}
case 2:
{
printf("dadada");
break;
}
}
}
这样当输入的值为1时,只执行case1里面的结果,打印lalala
6.default的作用是,在Switch语句里面所有的case语句都无法执行的时候,执行default里面的语句,当然default在Switch语句里面并不是必须的,可写可不写,有顺序上的区别
default也相当于一个入口,满足default里面的条件(即所有case条件都不满足)之后它里面以及它后面的语句也会执行,例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
scanf("%d",&a);
switch(a)
{
default: printf("?\n");
case 1:
{
printf("lalala\n");
}
case 2:
{
printf("dadada\n");
}
}
}当输入值为3时(不满足case 1也不满足case 2但是满足defaut)打印结果为:
?
lalala
dadada
7.case语句里面可以为空,利用这一特点可以灵活使用代码,比如规定周一二三四五为工作日,周六日为休息日,可以用如下代码来实现:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int day;
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;
}
}
}//输入1,2,3,4,5的时候结果都是工作日,输入6,7的时候都是休息日,具体规则在前面六条
//里面有体现