2017-03-04 6 views
-1

これで、Javaでこのようなことを見た後、ブールメソッドのループwhile

while(!booleanMethod());

私はこの行が何をしているのだろうと思っていました。内部的に、このメソッドはいくつかの属性を変更して変数などを作成しますが、最後に真理値を返します。 この場合、ループはどのように機能しますか?また、メソッドは呼び出されますか?おかげさまで

+1

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.htmlを読むことをお勧めします。 – dullpointer

答えて

0

このループ

while (!booleanMethod()); 

は、ブロックを持っていません。正常に実行されます。

しかし

while(false); 

は、コンパイルエラーを与えるだろう。

0

はい、このメソッドが呼び出されます。しかし、メソッドがブール値を返す以外の面白いことをしない限り、ループは役に立たない。例えば、それはこれがはるかに簡単な方法で表現することができる何かをするという冗長な方法である10

int counter = 0; 

public boolean go() { 
    counter++; 
    return counter < 10; 
} 

while (go()); 

System.out.println(counter); //-> 10 

にカウントさせることができます。しかし、重要な点は、メソッド自体が何らかの副作用をしなければならないことです。そうでなければ、ループは永遠に進むか、決して実行されません。