2009-05-16 16 views
11

ブロックの最後に行くことなくすぐにwhileループを終了するにはどうすればよいですか?例えばC++で 'while'ループがすぐに終了する

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

任意のアイデア?

+11

私は、答えがあなたの割り当てられた読書にあることをあなたに賭けています。 –

+4

@akappa、私は同意するだろうが、地獄、よく聞いてみるとよい。 –

+0

@David Bejar目的は宿題タグを削除するだけでなく、良い質問を編集して悪いものを閉じる/削除することです。 – Sam

答えて

42

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

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

イージーポイント。 :P –

+2

選択肢がループに入っていないと仮定すると(ここでは可能性が高いと思われます)、whileループは "while(true)"に簡略化できます –

+1

ええ、結果を配列に格納することも役立ちます;) – Andomar

2

hmm、break

3

break;。など

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

使用ブレークは、:

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

また、これはためのループのために働く、とスイッチ節を終了するためのキーワードです。詳細情報here

0

は、ループを終了します

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

信託私、試してみてください。それがうまくいかない場合は何もしません。これはあなたが望むものではないかもしれません...

+6

+1 ll:ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE、0)をスローすることがありますので、whileループはどんな状況でも再起動しません! – Andomar

+0

"信頼してください"笑。 –

3

はい、中断します。しかし、多くのプログラマが可能なときにそれを使用するのではなく、条件付きのif文を使用してループ内の他のものを実行することを好む場合があります(これを実行せずにループをきれいに終了してください)

休憩を使わずに、あなたが探しているものを達成することができます。

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

あなたは、その場合には、休憩を必要としません。

+0

しかし、あなたはストリーム抽出コードを複製しました。 –

+2

だから? 「コードを複製しない」とは、宗教的に従うべき教義ではありません。この場合、私はこの解決策をより自然に見つけることができます。 – akappa

+1

'cin'の複製に問題はありません。実際には、このスレッドの他のすべての回答よりも効率的です。 if文をwhileループ内に置くと、ループは2回多くのチェックを実行します。 – collinjsimpson

1

YAHイムあなたはちょうどあなたがそれはあなたがループを終了するには、breakステートメントを使用しないでください

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

よう

を終了したい

break; 

権利を置くかなり確信して。 もちろん、あなたはそれを行うことができますが、それはあなたがすべきことではありません。 それは良いプログラミングの練習ではありません。 終了するには、よりエレガントな方法は以下の通りです:

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

選択が99であればそこ行うには他に何もありませんし、ループが終了します。

関連する問題