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
语句,看看发生了什么(最好再加一分钟,学习如何在调试器中单步执行)。努力学习;当你被困在某个没有互联网连接的地方,需要做点什么的时候,你会很快得到回报,知道你自己做了会让你感觉好多了。