例1:
如本文中描述的switch语法,switch是多个if else 的组合,其形式上与if的语法结构很像,if(表达式){}
switch(表达式){
case 0: //表达式的各种取值 冒号,这跟我们平常列举各种情况的写法类似
case 1: //当表达式的多个取值的结果都一样的时,可以写在一起,在最后写break.
case 3:
cout << "情形1";
break;
case 2:
cout <<"情形2";
break;
case 4:
cout <<"情形3";
break;
default:
break;
}
例2:报错 main.cpp:23: error: crosses initialization of 'int nn'
原因分析:变量nn的的作用于是到switch的}结束,但是,倘若匹配了case2,就直接跳过了case1,此时nn是没有定义的,程序会崩。
改正: 将case1的情形用{}括起来,这样nn的作用域仅在case1的中,就可以避免跳到case2中调用nn的风险
int mm=2;
switch(mm){
case 1:
{
int nn =22;
qdebug()<
总结:switch语句中的各个case 可以使用{}分别进行括起来,这样不易出错。