3

重複の可能性:通常not
を使用するのはなぜですか?違いは何ですか?|||

例:

if(a && b && d)
{
...
}

「b」が失敗した場合でも、言語が if ステートメントのすべての条件のチェックをサポートしているかどうかを確認する必要があります。この概念は何と呼ばれますか?

4

3 に答える 3

14

いいえ、Java も C++ も評価しませんd。これが短絡評価です。

于 2012-05-24T22:45:52.567 に答える
3

いいえ、2 項論理演算子が短絡しています。オペランドを左から右に評価します。オペランドの 1 つが評価されて式が false になる場合、他のオペランドは評価されません。

于 2012-05-24T22:46:43.937 に答える
3

標準の二項演算 && および || 短絡されています。両側を強制的に評価したい場合は、 & または | を使用します。&& と || の代わりに。例えば

public class StackOverflow {

   static boolean false1() {
      System.out.println("In false1");
      return false;
   }

   static boolean false2() {
      System.out.println("In false2");
      return false;
   }

   public static void main(String[] args) {
      System.out.println("shortcircuit");
      boolean b = false1() && false2();

      System.out.println("full evaluation");
      b = false1() & false2();
   }
}
于 2012-05-24T22:54:35.387 に答える