c++中使用switch…case遇到的问题

学习完多态写小项目时遇到的问题

int main()
{
    int a,b;
    cin >> a >> b;
    switch(a)
    {
        case 1:
            int c = b;
            if(c==1) cout << b;
            else cout << "错误";
            break;
        case 2:
            break;
    }
}

这段代码在运行时会报错 初始化交叉和跳转到case标签问题

错误提示: Cannot jump from switch statement to this case label jump bypasses variable initialization

是因为在switch…case中不可以定义对象

解决办法如下

1.将case下的部分加上{}限定变量作用域

2.在switch…case外完成变量定义操作

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐