2017-05-13 11 views
-1
int levelP1; 
    int levelP2; 
    do { 
     p1.startTurn(p1, d1); 
     p2.startTurn(p2, d1); 
     levelP1 = p1.getLevel(); 
     levelP2 = p2.getLevel(); 
    } while (levelP1 <= 10 || levelP2 <= 10); 
    if (levelP1 >= 10) { 
     System.out.println(p1.getName() + " hit LvL " + levelP1 + " and WON the game !"); 
    } else if (levelP2 >= 10) { 
     System.out.println(p2.getName() + " hit LvL " + levelP2 + " and WON the game !"); 
    } 

(ながら)... 「startTurn()」メソッドがまたは何が起こるかに依存し、プレイヤーがレベルアップしない場合がありますその中に... どちらかのプレイヤーがレベル10以上になるとループを終了したい。助けてくださいJavaのループ制御、私はそれが意図されたものをやっていないコードのこのpieaceを持って

+0

あなたのif条件が 'break'ステートメントの中に' while'であるべきである – Vishrant

+1

*どちらかのプレーヤーがレベル10 *以上になるとループを終了したい場合は、 'levelP1> = 10 || levelP2> = 10'となり、ループ条件が逆になるので、while(levelP1 <10 && levelP2 <10); – Andreas

答えて

3

いずれかのプレイヤーがレベル10以上になるとループを終了します。

代わり||の使用&&

while (levelP1 < 10 && levelP2 < 10); 

このように、これら2つの条件のいずれかが、あなたの出口falseです。

+1

も ​​'='をドロップします。 [私のコメント](http://stackoverflow.com/questions/43958114/java-loop-control-while#comment74947168_43958114)を参照してください。 – Andreas

+0

しかし、もし私が&&を使用すると、 は、両方のループが終了する条件が偽であるときに終了しませんか?それは私が望んでいないものです – japanet

+1

いいえ条件は両方の条件が真である間真です。 'levelP1> = 10または' levelP2> = 10'のときに終了します。 'levelP1 <10 AND levelP2 <10' – davidxxx

関連する問題