switch(表达式){ case 常量1: 语句块1 break; case 常量2: 语句块2 break; ... case 常量n: 语句块n break; default: 默认语句块}
switch后接的表达式的值,如果匹配之后的case常量,则跳转到对应的语句块并执行。如果全部case都不匹配,则跳转到default中的语句块执行。
简单例子:
#include
输入5之后的运算结果:
break用于跳出当前作用域即所在的{}。
如果各个语句块最后没有break的话,则流程不会跳出switch,而是按顺序执行之后的语句。
int main(int argc, char* argv[]){ int nValue = 0; scanf("%d", &nValue); switch (nValue) { case 0: printf("case 0rn"); break; case 5: printf("case 5rn"); case 7: printf("case 7rn"); case 8: printf("case 8rn"); break; case 10: printf("case 10rn"); break; default: printf("没有case常量匹配,进入default流程rn"); break; } return 0;}
输入5之后的运行结果:
我们可以将多个case写在一起,对应同一个语句块:
#include
输入;后的运行结果:
if后可接任意表达式,但是switch后只能接整型表达式(或者能转换为整型的表达式)switch更简洁,同等复杂度的情况下,编译后的效率,switch的效率一般不低于if
5.学习地址: switch分支语句