2012-02-09 9 views
1

プログラムを意図的に終了するまで、ユーザーがさまざまな選択を促すようにするにはどうすればよいですか?今、私はdo-whileループを 'exit'というブール値で試してみました。終了はfalseですが、何をすべきかを選択するように促していますが、一度やってみてください。ユーザーが望む場合、アプリケーションは停止します。任意の助けをいただければ幸いです「do while」ループ、Javaで問題が発生する

boolean exit = false; 

do { 
    int options = 0; 
    do { 
    options = Integer.parseInt(JOptionPane.showInputDialog(null, 
       "Would you like to:" 
       + "\n(Enter number value of option you would like to choose.)\n" 
       + "\n1. See your recommendations. \n2. See top rated books." 
       + "\n3. See random books of the day. \n4. Exit")); 
    } while (logIn < 1 || logIn > 4); 

    if (options == 1) { 
    recommend.displayRecommendations(custIndex); 
    } else if (options == 2) { 
    calculations.displayTopTen(); 
    } else if (options == 3) { 
    calculations.displayRandomBooks(); 
    } else if (options == 4) { 
    exit = true; 
    System.exit(0); 
    } 
} while (exit = false); 

は、ここに私のコードです。

答えて

5

あなたはlogIn変数をチェックしているが、正しいものはoptionsでなければなりません。変更:

while (logIn < 1 || logIn > 4) 

へ:それはdoesnのけれども

while (options < 1 || options > 4) 

また、while (exit = false)(譲渡の試みは)while (exit == false)(比較)または、より良い、while (!exit)

そして、最後に、である必要がありますそれほど問題ではありませんが、System.exit()を呼び出す直前にexit = trueを設定するのは少し余計です。

+0

さらに、 '!exit' :) –

+0

@AndresF。同意する! –

+0

'!exit'というより明示的にしたい場合は' false == exit'を使います。このようにすれば、コンパイラは 'false'に代入することはできません。 'null'比較にも便利です。 –

7

これはあなたの問題である:

while (exit = false); 

は慎重に非常にを見て...

+0

Ofcoooooooourse ...私はそれが偽であるかどうかをチェックするのではなく、ブール値に偽の値を割り当てています。ありがとうございました。 – Marcos

+0

「これはあなたの問題になる」 - あなたは_pirateある_それは – paxdiablo

+0

@Marcos :-)英語を行うには恐ろしいことだ、笑、私たちはすべてのいくつかの時点でそれをやった... – Nim

関連する問題