case关键字用在switch语句中,表示多条件语句的一个分支入口。C++本着高效原则,在编译器为每个分支生成代码时,不会生成相应的跳转代码跳出当前分支,除非程序员显式的使用break语句。这样,C/C++编译器尽量少生成额外代码,将控制权留给程序员。虽然程序员的负担加重了,可这换来了程序运行时的高效性。程序员可以利用这点,实现case语句的直通。如果程序中确实需要这种直通式的分支,强烈建议程序员在分支后面加上必要的注释,以防止维护人员意外的加上break语句。另外要注意的是,case语句后面必须是一个在编译期间能够确定的整型常量(或可转换为整型常量)的值。下面给出一段C语言程序及与其对应的IBM-PC的汇编代码,通过对这段代码的分析,可以看出break,case及switch语句如何在C/C++中实现的,以及这种实现方式所带来的高效性、简洁性,同时也能明白为什么在case语句后应该是一个在编译期间能够确定的整型常数。