1.0结构
Switch的标准结构如下:
switch(表达式){
case 常量表达式1: 语句1;break;//当表达式等于常量表达式 1,执行语句1,然后由break跳出switch,执行下一个函数
case 常量表达式2: 语句2;break;//当表达式等于常量表达式 2,执行语句2,然后由break跳出switch,执行下一个函数
......
case 常量表达式n: 语句n;break;//当表达式等于常量表达式 n,执行语句n,然后由break跳出switch,执行下一个函数
default : 语句n+1; //当表达式不等于任何一个常量表达式,执行语句n+1,然后跳出switch
}
在了解这个基本结构后,有以下几点需要特别注意:
1.1第一个符号是冒号:
这个容易与它之后的分号弄混,防止出错的方法就是认识到 “case 常量表达式”是条件,冒号就代表满足前面条件的话,就执行后面的语句。
1.2 case与其后面的常量表达式间有一个空格。
1.3如果不使用break的话,在执行满足条件的case后会继续运行下面的case。虽然结果不会受影响,但我们可以通过运用break来提高效率。
1.4 在case后面可添加多条语句而不需要加大括号。
1.5 default不是必要的,它只是一个功能。如下
有default:
int a=0;
scanf("%d",&a);
switch(a){
case 1:printf("你输入的是1");break;
default:printf("你输入的不是1");
}
无default:
int a=0;
scanf("%d",&a);
switch(a){
case 1:printf("你输入的是1");break;
}
printf("没有default也可以哦");
1.6 default只可以在最后一排
default在最后一排时是正常的:
在其他位置,执行default时同时执行其下面的case语句:
1.7 表达式必须是整型变量(tybe,int,char,short等)而不能是实数类型。
2.0功能
如果表达式等于某一个case后面常量表达式的值,那么执行它之后的语句;
如果没有case可执行,分有无default
若有,则执行default后面的语句;
若无,结束switch;