C++ C++;多重开关和断路器?

C++ C++;多重开关和断路器?,c++,C++,假设我有这样一个代码 switch (something) { case 0: switch (anotherthing) { case 0: break; case 1: break; default: break; }

假设我有这样一个代码

    switch (something)
    {
      case 0:
           switch (anotherthing)
           {
             case 0:
                break;
             case 1:
                break;
             default:
                break;
           }

    case 1:
    case 4:
      break;
    case 2:
    case 3:
      break;
    default:
      break;
}
现在,如果我使用案例0并转到switch(另一个),然后使用break,将会发生什么?完成开关(另一件事)?或者完成开关(什么的)


这在其他语言中也一样吗?

中断只会从最里面的开关中断

通过添加一些
print
语句或换行符,您提供的示例很容易测试这种行为


请参阅C++中断行为。<> >代码>中断< /代码>语句只中断它所调用的最接近的开关/循环。

在您的示例中,内部
开关的
break
语句只会中断内部
开关
,执行将返回到另一个
开关的
案例0
。然后,由于
情况0
本身没有
中断
,因此执行将落到
情况1
,它也没有
中断
,因此执行将落到
情况4
,它有
中断
来结束外部
开关


不管怎样,C和C++都是这样。不一定用其他语言。例如,Delphi不会在案例块之间失败
Break
可用于提前结束
案例
块,但这是可选的,块在其作用域结束时完成。

您可以在不到2分钟的时间内进行测试…
Break
退出当前循环/开关。编译和运行此代码将给出比我们更可靠的答案。在更少的时间里。只需添加一些cout语句。如果你真的尝试解决问题,你会学到比依靠别人告诉你更多的东西。实际编译和运行代码大约需要30秒的时间,看看会发生什么;再加上两分钟,插入两条
printf
cout
语句,看看发生了什么(最好再加一分钟,学习如何在调试器中单步执行)。努力学习;当你被困在某个没有互联网连接的地方,需要做点什么的时候,你会很快得到回报,知道你自己做了会让你感觉好多了。