C语言之switch

时间:2023-03-08 17:14:56

一 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;

}