【发布时间】:2010-11-28 01:09:16
【问题描述】:
我正在编写一些看起来像这样的代码:
while(true) {
switch(msg->state) {
case MSGTYPE: // ...
break;
// ... more stuff ...
case DONE:
break; // **HERE, I want to break out of the loop itself**
}
}
有什么直接的方法吗?
我知道我可以使用一个标志,并通过在切换后放置一个条件中断来中断循环。我只是想知道 C++ 是否已经为此提供了一些构造。
【问题讨论】:
-
为什么切换后需要条件中断?只需将您的 while 从 while(true) 更改为 while(flag)...
-
@Dave_Jarvis 我认为这是一个简化版本,他放在这里是为了说明他想要做什么。
-
如果您是这些编写长达数页的函数的程序员之一,您会发现
goto很有吸引力,有时是唯一干净的出路。如果您倾向于将代码组织成只有几行长的小函数,并且每个函数只做一件事,那么您将永远不会遇到这个问题。 (顺便说一句,您的代码也会更容易阅读。) -
当您只想知道如何去最近的地铁站时,如果想要得到戒烟建议。
-
@hacker:好吧,如果你因为烟雾而看不到你面前的地铁站,那么这个建议可能不是那么糟糕。
:)
标签: c++ loops syntax switch-statement break