【发布时间】:2017-03-22 14:40:53
【问题描述】:
我对以下 switch 语句有疑问:
#include <iostream>
using namespace std;
int main()
{
int x = 1;
switch (x)
{
case 1:
cout << "x is 1" << endl;
//break;
case 2:
cout << "x is 2" << endl;
//break;
default:
cout << "x is something else" << endl;
}
}
使用 break 它可以按预期工作,但是当我注释掉中断时,输出是:
x 是 1
x 是 2
x 是别的东西
我希望输出是
x 是 1
x 是别的东西
因为 x == 1 和 case 1 被执行。如果没有中断,它还会检查不应执行的 case 2,因为 x != 2。最后默认执行。
为什么在这种情况下执行案例2?
【问题讨论】:
-
因为它失败了 - 这就是你首先添加
breaks 的原因 -
"如果没有中断,它也会检查 case 2 ..." 不,它不检查 case 2,它只是执行代码,不再检查 case。跨度>
标签: c++ switch-statement