前言
几乎每本面向初学者的C语言或C++书籍在前面两章都会提到分支控制语句if……else和switch……case,在某些情况下这两种分支控制语句可以互相替换,但却很少有人去深究在if……else和switch……case语句的背后到底有什么异同?应该选择哪一个语句才能使得效率最高?要回答这些问题,只能走到switch语句的背后,看看这些语句到底是怎么实现的。
基本格式
switch语句的基本格式如下:
switch (表达式) {
case 常量表达式1:《语句序列1》《break;》 //《》中的内容可省
……
case 常量表达式n:《语句序列n》《break;》 //同上,下同
《default:语句序列》
}
其中:
- 表达式——称为“条件表达式”,用作判断条件,取值为整型、字符型、布尔型或枚举型。
- 常量表达式——由常量构成,取值类型与条件表达式相同。
-
语句序列——可以是一个语句也可以是一组语句。
if语句与switch语句
相信学过C/C++的同学对这两个语句的异同早就了如指掌,if语句作为条件判断,满足条件进入if语句块,不满足条件则进入else语句块,而且if和else语句块又可以继续嵌套if语句。switch则是通过判断一个整型表达式的值来决定进入到哪一个case语句中,如果所有case条件都不满足则进入到default语句块。










