在switch语句中的本地作用域 - 我们在哪里跳出?

7

可能是重复问题:
在switch-case中使用花括号时的‘break’语句

在合并软件包时,我遇到了这个语句。

switch (a)
{

case 1:
    {
        string str = "a is 1";
        cout << str << endl;
    }
    break;
case 2: ...
...

}

我的问题是,在情况1中,如果我把break放在作用域内或外面,这会有影响吗?这里他们将其放在外面。我尝试了这个,但没有看到任何区别。我认为没有区别是有道理的,但是我的团队里那个拥有PHD学位的人说他记得可能有区别,但他记不起来是什么了。

https://dev59.com/5ms05IYBdhLWcg3wNPS7 - P.P
我建议打破作用域,尽管这并不重要。从我的直觉来看,这似乎是更好的风格。 - πάντα ῥεῖ
@KingsIndian 谢谢。这不是我在谷歌搜索此问题时想到的第一个字符串。 - Digital Da
2个回答

11

在作用域内或外部放置break语句没有区别。


1
在一个 switch 块内部的 break 会导致执行下一个语句,跳出该 switch 块。因此,无论你将 break 放在块内还是块外都不会影响其执行效果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接