【问题标题】:Switch statement only executes last case? [closed]switch 语句只执行最后一种情况? [关闭]
【发布时间】:2021-03-23 02:43:44
【问题描述】:

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

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

无论我以 int 形式输入什么,它都会执行案例 3。但是如果我删除案例 3,它会执行案例 2。输出检查显示传递的整数不是这些案例的对应整数。有人遇到过这个问题吗?

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

提前致谢!

【问题讨论】:

  • 此代码,例如switch(int) 无法编译。请显示不适合您的实际代码。您可以将//... 作为案例标签的正文。

标签: c++ switch-statement logic


【解决方案1】:

你需要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。

【讨论】:

    【解决方案2】:

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

    break;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多