前言:
switch语句其实就是多个if…else…语句的组合 ,程序会检查switch后面的值并且与case后面的值比对,如果相等则执行后面的代码或代码块,如果全部不相等,则会执行default语句块
注意事项
-
switch语句中使用的表达式必须具是int、char型或者enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型
-
switch可以任意个case语句(包括没有), 值和语句之间使用:分隔
case后面的值必须是int常量值,或者返回结果为int类型的表达式,以下代码无法编译通过
switch (10) {
case 10.1:
break;
}
int a;
scanf("%d", &a);
switch (a) {
case a + 1:
break;
}
-
当switch后面的变量值和case后面的常量值匹配相等后,case后面的代码将会被执行,直到break语句被执行后跳出switch代码块
-
break不是必须的,如果没有break,则执行完当前case的代码块后会继续执行后面case代码块的内容,直到执行break才可以退出
-
switch有一个默认的情况,我们用default关键词表示,当switch后面的变量和所有case后面的常量都不匹配的情况下,默认执行default后面的语句