与或


package com.lgw.aha;

public class HuoAndYu {
    public static void main(String[] args) {
        
    System.out.println(true & false);//false
    System.out.println(true & true);//true
    System.out.println(false & false);//false
    System.out.println(false & true);//false
    
    System.out.println(true && false);//false
    System.out.println(true && true);//true
    System.out.println(false && false);//false
    System.out.println(false && true);//false
    
    /*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     * &--->与    &&--->短路与
     * 由上黄色警告可知:短路与-当左边表达式为false时右边已经不执行了,所以IDE有标识(图1)
     */
    
    System.out.println(true | false);//true
    System.out.println(true | true);//true
    System.out.println(false | false);//false
    System.out.println(false | true);//true
    
    System.out.println(true || false);//true
    System.out.println(true || true);//true
    System.out.println(false || false);//false
    System.out.println(false || true);//true
    
    /*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     * |--->或    ||--->短路或
     * 由上黄色警告可知:短路或-当左边表达式为true时右边已经不执行了,所以IDE有标识(图2)
     */
    
    
    /*======>>>短路和不短路的区别<<<======
     *1. 不短路的与和或:将运算符左右两边的表达式都进行运算得出布尔值后再进行运算
     *2. 短路与:若左边表达式为false则不会对右边表达式判断,因为只要出现一个false则结果必是false
     *3. 短路或:若左边表达式为true则不会对右边表达式判断,因为只要出现一个true则结果必是true
     *4. 由上述可知:短路的与和或执行效率要高
     * 
     * 或--->5次机会只要有一次考试得了60分就算及格,每次考试之间的关系就是或
     * 与--->5次机会必须每次考试都得了60分才算及格,每次考试之间的关系就是与
     */

//  上述第4点举例

    int a = 1 ; int b = 10;
    System.out.println(false & a++==1);//左边为false,右边的表达式继续执行,即a自增1
    System.out.println(a);//2

    a= 1;
    System.out.println(false && a++==1);//左边的表达式为false,右边的表达式a++将不会执行
    System.out.println(a);//1

    System.out.println(true | b++==1);//左边为false,右边的表达式继续执行,即b自增1
    System.out.println(b);//11

    b= 10;
    System.out.println(true || b++==1);//左边的表达式为false,右边的表达式b++将不会执行
    System.out.println(b);//10
    
    /*
     * 上述  a++ == 1  和  b++  == 1 只是得出一个布尔型值
     */
    }
}

 

 

图1

 

 

 

 

 

 (图1)

 

图2

(图2)

posted @ 2018-08-29 15:08  stuka  阅读(429)  评论(0编辑  收藏  举报