例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 可以使用{}分别进行括起来,这样不易出错。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175948.html原文链接:https://javaforall.net
