菜鸟笔记
提升您的技术认知

c语言中switch用法举例

例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()<<nn;
        break;
    }
    case 2:
    {
        qDebug()<<mm;
        break;
    }
    }

总结:switch语句中的各个case 可以使用{}分别进行括起来,这样不易出错。