switch语句:
用于直接处理不同情况下的多路问题。
switch语句又可称为开关语句,其执行流程和多分支if语句类似。
switch (表达式)
{
case 常量表达式1:语句组1;break; // 如果有break,执行完case后的语句后,就停止;
case 常量表达式2:语句组2;break; // 如果没有break,则继续执行下一个case语句,直到遇到break。
...
case 常量表达式n:语句组n;break;
default:语句组;break; // 这一句可要可不要
}
当switch后面的“表达式”的值与某个case后的“常量表达式”的值相同时,就执行该case后面的语句(组)。当遇到break语句时,跳出switch语句,转向执行switch结构后面的语句。如果没有任何一个case后面的“常量表达式”的值与“表达式”的值匹配,则执行default后面的语句(组)。然后再执行switch结构后面的语句。
注意:
- switch后面的“表达式”可以是int、char和枚举型中的一种。
- 每个case后面只能有一个常量,且“常量表达式”的值必须各不相同,否则会出现相互矛盾的现象(即对表达式的同一值,有两种或两种以上的执行方案)。
- case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断。所以必须加上break语句,以便结束switch语句。
- 各case及default子句的先后次序,不影响程序执行结果。
- 多个case子句可共用同一语句(组)。