【问题标题】:Why do I get an error when I add break statement in While loop? [closed]为什么在 While 循环中添加 break 语句时会出现错误? [关闭]
【发布时间】:2020-12-01 02:53:43
【问题描述】:

这是我使用 vcvarsall 运行的一段代码,vcvarsall 是 Microsoft Visual Studio 中的一个工具。

   Running = true;
    while (Running);
    {
        MSG Message;
        BOOL MessageResult = GetMessageA(&Message, 0, 0, 0);
        if (MessageResult > 0)
        {
            TranslateMessage(&Message);
            DispatchMessage(&Message);
        }
        else
        {
            break;
        }
    }

我从命令行收到此错误:

错误 C2043:非法中断

我做了一些研究,从 MSDN 中发现,

 A break is legal only within a do, for, while, or switch statement.

链接:https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2043?view=vs-2019

那么我该如何解决这个错误呢?从我发现的其他 C++ 文档和示例中,这是合法的。这是特定于在 Visual Studio 中运行的 C++ 代码的问题吗?谢谢!

【问题讨论】:

  • 去掉while (Running)之后的;
  • 谢谢!案子解决了!原来问题不那么复杂,现在编译成功了!
  • 宋元瑶评论详解:while (Running);相当于while (Running) { }。然后,其余代码在(空)循环外部/之后执行。

标签: c++ visual-studio loops compiler-errors break


【解决方案1】:

原来是语法错误!不要在循环后添加;!此外,您可以添加 break 语句,只要它在循环、switch 语句中即可。

【讨论】:

  • 不是语法错误。好吧,不是通常意义上的,也就是说,它不是对 C++ 语法的无效使用。该代码是合法的,其含义是明确定义的。有时将分号作为循环体很有用。但这绝对是一个错误! +1。
猜你喜欢
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多