switch 语句只执行最后一种情况?

时间:2021-03-23 02:43:44

标签: c++ switch-statement logic

我正在尝试执行 switch 语句,但它只会执行最后一种情况,不包括默认情况。所以当我使用这段代码时:

switch (int)
{
case 1:
    <code>
case 2:
    <code>
case 3:
    <code>
case default:
    <code>
}

它执行 case 3,不管我输入什么为 int。但是如果我删除 case 3,它会执行 case 2。输出检查显示传递的整数不是这些情况的对应整数。有没有人遇到过这个问题?

我的代码现在非常简单;省略每种情况的确切代码在逻辑上没有区别。

提前致谢!

2 个答案:

答案 0 :(得分:2)

您需要break properly

switch (n) {
case 1:
    /* code here */
    break;
case 2:
    /* code here */
    break;
case 3:
    /* code here */
    break;
default:
    /* code here */
    break;
}

如果你忘记了 break 语句,它会跳到下一个 case。

答案 1 :(得分:0)

您需要在每个案例代码的末尾添加一个 break 语句。

break;

一旦你把它放在每个案例的末尾,它应该可以解决你的问题。代码目前全部默认为最后一种情况。