2016-04-29 18 views
-2

私は単純なプログラムを実行すると、それらの両方(&と& &)は互換的に動作するようです。誰かがそれぞれのケースをいつ使うべきか説明してもらえますか?JAVA:論理AND/ORと短絡AND/ORの違いは何ですか?

public class Test1 { 

    public static void main(String [] args){ 

     int counter = 0; 

     int dice1; 
     int dice2; 


    for (int loop = 0; loop <= 1000; loop++) { 


    dice1= (int) (Math.random()*6)+1; 
    dice2= (int) (Math.random()*6)+1; 

     if (dice1 == 6 && dice2 == 6){ 
      counter ++; 
     } 

    } 

    System.out.println("Counter = " + counter); 

    } 
} 

また、このプログラムは、私は&代わりの& &を使用するときに動作するようです。違いは何ですか?

+4

私はあなたのコードに '||'や '|'を使用していません。実際のコードを分けてください。 – Mureinik

+0

私は&と&&を意味していました – TheHoboMaster

+0

あなたはそのうちの1つが短絡していることを知っています。その意味を理解していますか?テストが 'test!= null && test.equals(" foo ")'の場合はどうなりますか?それをテストしてください。 –

答えて

0

主な違いは、このコード行では

&&||演算子は「遅延評価」のいくつかの種類を行うことである。

method1() & method2(); 

両方の方法は、の戻り値の独立した呼ばれますmethod1。このコード行で一方:method1trueを返す場合

method1() && method2(); 

method2にのみ呼び出されます。

||を使用する場合、2番目のメソッドは、最初のメソッドがfalseを返すときにのみ呼び出されます。


関連する問題