2015年9月7日 星期一

[Java]&&, || 與 &,| 運算子的不同

在Java上有&&跟||這個運算子與 & 跟 | 這個運算子

雖然&&跟&都是and運算
||和 | 都是or運算
不過實際運作起來是有差別的
&&跟||運算時如果結果已經確定運算結果
他們就不會再撿查下一個敘述是否為真

比如說 A&&B
如果A已經是false了,那麼不管B是true or false,結果都是false
所以就不會去檢查B

像是下面的程式碼可以運作

public class Demo {



 public static void main(String[] args) {

  String a = null;

  String b = "a";



  System.out.println(a==null||a.equals(b));//true

  System.out.println(a!=null&&a.equals(b));//false

 }

}


然後&跟|不管如何兩個序述都會檢查
所以下面的程式碼就會跳nullpoint

 public static void main(String[] args) {

  String a = null;

  String b = "a";



  System.out.println(a==null|a.equals(b));//true

  System.out.println(a!=null&a.equals(b));//false

 }

}

沒有留言:

張貼留言