switch语句使用时注意事项

  
如下代码编译时编译器给出如下错误:error C2361: default”标签跳过“temp1的初始化操作
void main()
{
    int i;
    switch(i)
    {
    case 1:
        int temp1 = 1;
        break;
    default:
        break;
    }
}
如果采用下面的三种方法可以解决这个编译错误:
方法一:在只有一个case语句的情况下使用不会出现此类编译错误,代码如下:
void main()
{
    int i;
    switch(i)
    {
    case 1:
        int temp1 = 1;
        break;
    }
}
方法二:采用先声明后赋值的方法,代码如下:
void main()
{
    int i;
    switch(i)
    {
    case 1:
        int temp1;
        temp1 = 1;
        break;
    default:
        break;
    }
}
方法三:将case语句中代码利用”{}”括起来,代码如下:强烈推荐此方法
void main()
{
    int i;
    switch(i)
    {
    case 1:
        {
            int temp1 = 1;
            break;
        }
    default:
        {
            break;
        }
    }
}
    Switch语句编程规范总结:
    【规则1】每个case 语句的结尾不要忘了加break,否则将导致多个分支重叠(除非有意使多个分支重叠)。
       【规则2】不要忘记最后那个default 分支。即使程序真的不需要default 处理,也应该保留语句 default : break; 这样做并非多此一举,而是为了防止别人误以为你忘了default 处理。
       【规则3】 在使用switch语句时,不管case分支中有几条语句,都是用”{}”将其括起来。
原文地址:https://www.cnblogs.com/zhangyunlin/p/6168005.html