Switch是一种用于分支选择的语句,需要将每种情况用case语句列出来,然后再将整形表达式与case语句中的常量表达式配对,函数才会进入整形表达式与常量表达式相同的case语句。
相对于if语句,switch语句的限制较多,且实用性不大,像上面所介绍的一样,需要进行判断的表达式必须为整形,这一点就决定了它只能适合一部分情况。
对于switch函数,其实我们并不经常用,我们只需掌握三个重点即可。
①格式
Switch(整形表达式)
{
Case常量表达式1:语块1;break;
Case常量表达式1:语块1;break;
Case常量表达式1:语块1;break;
Case常量表达式1:语块1;break;
……
Default:语块n+1;break;
}
写switch语句语法较为复杂,所以我们在用的时候一定要仔细,因为一点疏忽大意就会与正确的结果相距千里。
例如下面函数
int b;
switch(inta=10)
{
case0&&10:b=10;
case1:b=20;
case2:b=30;
case3:b=40;
default:b=0;break;
}
因为这个函数在前面的case语句中没有写break,这个函数在进入第三个case2后,会一直执行后面的函数,继续运行case3、default,b会被赋值成30、40到最后赋值为0;这时遇到break,结束赋值,所以最后b的值会是0。
②怎么进
只有当表达式的值跟标签值一样才会进
③怎么出
出函数有两种方式:第一种是遇到break;第二种是switch结束。