java基礎之邏輯運算符

首先我們需要知道java中邏輯運算符有哪些
第一部分:  &(邏輯與),|(邏輯或),^(邏輯異或),!(邏輯非)
第二部分:  &&(邏輯與 ,與&作用一致,但是運算形式不同),||(邏輯或,與|作用一致,但運算形式不同)   
a. 邏輯運算符的基本用法  
    邏輯運算符一般用於連接boolean類型的表達式或者值。
    語法:  布爾表達式 & 布爾表達式
          布爾表達式 | 布爾表達式
          布爾表達式 ^ 布爾表達式
          !布爾表達式 
          
          布爾表達式 && 布爾表達式
          布爾表達式 || 布爾表達式

b. 結論:
        &邏輯與:有false則false。
        |邏輯或:有true則true。
        ^邏輯異或:相同爲false,不同爲true。
        !邏輯非:非false則true,非true則false。
        特點:偶數個不改變本身。
第一部分: 
       &(邏輯與),|(邏輯或),^(邏輯異或),!(邏輯非)
案例:
  1. class Demo1_Operator {
  2. public static void main(String[] args) {
  3. //&,|,^,!
  4. int a = 10;
  5. int b = 20;
  6. int c = 30;
  7. //邏輯與 遇false則false
  8. /*System.out.println(a < b & b < c); //true & true = true
  9. System.out.println(a < b & b > c); //true & false = false
  10. System.out.println(a > b & b < c); //false & true = false
  11. System.out.println(a > b & b > c); //false & false = false*/
  12. //邏輯或 遇true則true
  13. /*System.out.println(a < b | b < c); //true | true = true
  14. System.out.println(a < b | b > c); //true | false = true
  15. System.out.println(a > b | b < c); //false | true = true
  16. System.out.println(a > b | b > c); //false | flase = false*/
  17. //邏輯異或 ^ 兩邊相同爲false,兩邊不同爲true
  18. /*System.out.println(a < b ^ b < c); //true ^true = false
  19. System.out.println(a < b ^ b > c); //true ^false = true
  20. System.out.println(a > b ^ b < c); //false ^ true = true
  21. System.out.println(a > b ^ b > c); //false^flase = false*/
  22. //邏輯非! 表達式結果爲true 返回false, 結果爲false 返回true
  23. System.out.println(!true);
  24. System.out.println(!!true);
  25. }
  26. }

第二部分:邏輯運算符&&和&的區別與||和|的區別
         1.&&和&的區別?
        a:最終結果一樣。
b:&&具有短路效果。左邊是false,右邊不執行。
  &是無論左邊是false還是true,右邊都會執行
2.||和|的區別?
      a:最終結果一樣
    b:||具有短路效果.左邊是true,右邊不執行
      |是無論左邊是false還是true,右邊都會執行
     3.開發中常用的邏輯運算符?
&&(相比較與&而言,由於短路效果,會減少運算的次數,提高效率),||(相比較於|而言,短路效果提高運算效率),!
案例:
  1. class Demo2_Operator {
  2. /*
  3. &&與&的區別
  4. * a:最終結果一樣。
  5. * b:&&具有短路效果。左邊是false,右邊不執行。
  6. ||與|的區別
  7. a:最終的結果是一樣
  8. b:||具有短路效果,左邊爲true,右邊不執行
  9. */
  10. public static void main(String[] args) {
  11. int x = 3;
  12. int y = 4;
  13. //System.out.println((++x == 3) & (++y == 4)); //false & false = false
  14. //System.out.println("x = " + x); //x = 4 ++在前先進行x的++運算,然後與3比較返回false
  15. //System.out.println("y = " + y); //y = 5 ++在前先進行y的++運算,然後與4比較返回false
  16. System.out.println("---------------------------");
  17. System.out.println((++x == 3) && (++y == 4)); //false && (未知) = false
  18. System.out.println("x = " + x); //x = 4 ++在前先進行x的++運算,然後與3比較返回false
  19. System.out.println("y = " + y); //y = 4 由於前面的爲false,遇到&&短路與則後面的不進行運算
  20. //故而++y的運算不會執行,最終返回的y爲初始值.
  21. }
  22. }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章