一 switch的语法
switch(表达式){
case 常量表达式1:
代码块1
break;
case 常量表达式2:
代码块2
break;
case 常量表达式3:
代码块3
break;
.......
default:
代码块n;
break;
}
语义:根据表达式的结果,直接跳转到与之对应的常量表达式1的代码块里去执行,如果常量表达式都没有与它对应的值,那么就会跳转到default语句里面执行代码块n
二 switch的注意事项
1.千万不要在小括号后面加;,否则可能引起报错
2.switch小括号里面的表达式的结果只能为整数,字符可以,因为字符本质上是整数
3.case后面的常量表达式,只能放常量,不能放变量
4.只要是常量的表达式都可以(所以case后面可以写常量运算式)
5.case后面的常量表达式的结果不允许有相同的
6.default位置可以写在任意位置
7.default可以省略
8.break可以省略,因为break关键字的作用:结束当前所在的switch语句
9.一般情况下,记得不要省略每个case后面的break;
tips:代码例子如下
#include <stdio.h>
int main(int argc, const char * argv[]) {
//千万不要在小括号后面加;
/*
//int num = 3;
// switch (num); { //会报错
//
// case 1:
// break;
// case 2:
// break;
// case 3:
// break;
// default:
// break;
// }
*/
//switch小括号里面的表达式的结果只能为整数
/*
float f = 10.3f;
char ch = 'a';
switch (f) { //会报错
case 1:
break;
default:
break;
}
*/
//char可以
/*
char ch = 'a';
switch (ch) {
case 'a':
break;
case 'b':
break;
default:
break;
}
*/
//case后面的常量表达式,只能放常量,不能放变量
/*
int num1 = 1,num2=2,num3=3;
switch (1) {
case num1: //报错
break;
default:
break;
}
*/
//只要是常量的表达式都可以
/*
switch (1) {
case 1+1;
break;
case 2-1:
break;
default:
break;
}
*/
//case后面的常量表达式的结果不允许有相同的
/*
switch (1) {
case 1:
break;
case 2:
break;
case 3:
break;
case 3-2: //报错
break;
default:
break;
}
*/
//是直接跳转到与之对应的case块
/*
int num = 2;
switch (num) {
case 1:
printf("1\n");
break;
case 4:
printf("4\n");
break;
case 5:
printf("5\n");
break;
case 2:
printf("2\n");
break;
default:
break;
}
*/
//因为break关键字的作用:结束当前所在的switch语句
/*
int num = 2;
switch (num) {
case 1:
printf("1\n");
break;
case 2: //会从这里开始一直往下直到执行完毕
printf("2\n");
case 3:
printf("3\n");
default:
printf("ddddd\n");
}
*/
return 0;
}