web-dev-qa-db-ja.com

C ++の「while」ループの即時終了

ブロックの最後に行かずにwhileループをすぐに終了するにはどうすればよいですか?

例えば、

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

何か案は?

13
Meir

ブレークを使用しますか?

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

その場合、休憩は必要ありません。

8
akappa

breakを使用してください。

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

これはforループでも機能し、switch句を終了するためのキーワードです。詳細 こちら

6
Elben Shira

break;

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

はい、ブレークは機能します。ただし、多くのプログラマーは、可能な場合は使用しない方がよい場合があります。むしろ、条件付きifステートメントを使用してループ内で他の処理を実行します(したがって、実行せずにループを完全に終了します)

このような何かは、休憩を使用することなく、あなたが探しているものを達成します。

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

うーん、break

2
Remus Rusanu
while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    exit(0);
  cin>>gNum;
}

私を信じて、それはループを終了します。それが機能しない場合は何もしません。心、これはあなたが望むものではないかもしれません...

1
Will Hartung

ええ、あなたが置くだけでかなり確信しています

    break;

終了したい場所

お気に入り

    if (variable == 1)
    {
    //do something
    }
    else
    {
    //exit
    break;
    }
1
Chris Stryker

試して

break;
0
Dario