C++ 立即退出';而';C+中的循环+;

C++ 立即退出';而';C+中的循环+;,c++,while-loop,break,C++,While Loop,Break,如何在执行循环时立即退出,而不转到块的末尾 比如说, while (choice != 99) { cin >> choice; if (choice == 99) //Exit here and don't get additional input cin>>gNum; } 有什么想法吗?hmm,break?使用break while(choice!=99) { cin>>choice; if (choice

如何在执行
循环时立即退出
,而不转到块的末尾

比如说,

while (choice != 99)
{
    cin >> choice;
    if (choice == 99)
        //Exit here and don't get additional input
    cin>>gNum;
}

有什么想法吗?

hmm,
break

使用break

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    break;
  cin>>gNum;
}

break

while(choice!=99)
{
   cin>>choice;
   if (choice==99)
       break;
   cin>>gNum;
}
使用break,例如:

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    break; //exit here and don't get additional input
  cin>>gNum;
}
这也适用于for循环,是结束switch子句的关键字。更多信息。

试试看

break;

相信我,这将退出循环。如果那不起作用,什么也不会起作用。记住,这可能不是你想要的…

是的,休息会有用的。但是,您可能会发现,许多程序员在可能的情况下不喜欢使用它,而是使用条件if语句来执行循环中的任何其他操作(因此,不执行它并干净地退出循环)

这样的事情可以实现你想要的,而不需要休息

while(choice!=99) {
    cin >> choice;
    if (choice != 99) {
        cin>>gNum;
    }
}

那样的话,你就不需要休息了。

是的,我很确定你刚刚

    break;
就在你想让它退出的地方


永远不要使用break语句退出循环。 你当然可以做,但这并不意味着你应该做。 这不是一个好的编程实践。 更优雅的退出方式如下:

while(choice!=99)
{
    cin>>choice;
    if (choice==99)
        //exit here and don't get additional input
    else
       cin>>gNum;
}

如果选择是99,则无需其他操作,循环终止。

我愿意打赌答案在指定的阅读中。@akappa,我同意,但见鬼,问比不问更好。@David Bejar记住,目标不仅仅是删除作业标签,但要编辑好的问题并关闭/删除坏的问题,如果选项为99,则while已经中断<代码>while(choice!=99){if(choice==99)}
+1 lol可能会抛出一个::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0),因此while循环在任何情况下都不会重新启动!假设choice没有进入循环——这在这里似乎是一种可能性——while循环可以简化为“while(true)”是的,并且将结果存储在数组中也可能有帮助;)但是,呃,你复制了流提取代码。那么?“不重复代码”不是你应该以宗教方式遵循的教条。在这种情况下,我发现这个解决方案更自然。复制“cin”没有什么错。事实上,它比这个线程中的所有其他答案都更有效。在while循环中放入if语句会使循环执行两倍的检查。这应该是正确的答案。
    break;
    if (variable == 1)
    {
    //do something
    }
    else
    {
    //exit
    break;
    }
while(choice!=99)
{
    cin>>choice;
    if (choice==99)
        //exit here and don't get additional input
    else
       cin>>gNum;
}