我当前的代码中有一个错误,几天来我一直在努力解决这个问题。我将在下面发布代码的摘要版本(不是我的实际代码,但它仍然可以编译)。
#include <iostream>
using namespace std;
int main()
{
int x = 7;
switch(x)
{
case 1:
{
case 2:
cout << "hi";
}
}
}
我有时喜欢在我的 switch case 中引入更严格的范围,这样局部变量名就不会干扰我之前使用的变量名。显然,有一天我有一个电话要接听或其他什么,并没有按照我的意愿完成案例陈述,但后来我确定我已经完成了。case 2 实际上应该在嵌套开关中,而不是作为原始外部开关的一部分(对于那些想知道的人,我在代码中使用命名常量,而不仅仅是幻数)。在 g++ 上,在没有任何选项的情况下编译时我没有收到警告或错误。
我的问题:为什么允许跨范围的情况下从开关跳转?它的用途是什么?