可能重复:
Why was the switch statement designed to need a break?
我有这个:
switch(i)
{
case a:
{
//code
}
case b:
{
//code
}
case c:
{
//code
}
}
如果i == a
,b
和c
中的代码会被执行,还是我必须在每个代码中加break;
?
谢谢,
答案 0 :(得分:8)
我必须在每个人中加
break;
吗?
是的,如果您只想要执行一个案例。或者,其他控制流语句也可以导致switch
退出,例如return
或throw
。
如果您要将//code
替换为std::cout << "case [x]" << std::endl
,那么答案很明显。
答案 1 :(得分:3)
答案 2 :(得分:0)
不是在最后一个,即使这样做也是好习惯。
如果你没有将break
放入其中,那么当前案例和所有持续案件将一直执行,直到下一次休息,抛出或返回。
如果您希望两个case
部分执行相同的代码,这非常有用,您可以写:
case a:
case b:
// ... some code...
break;
对于a和b都会执行。