
双与&& 和双或 || ,性能更好,少一部操作 
public class OperatorDemo6 {public static void main(String[] args) {// 目标:学会使用逻辑运算符,并能够选择合适的逻辑运算符解决问题double size = 9.8;double storage = 6;// 单 &(与) 必须前后都是true 结果才是trueSystem.out.println(size >= 6.95 & storage >= 8); // false, 后面条件不满足// 单 |(或)只要一个为true ,结果就是trueSystem.out.println(size >= 6.95 & storage >= 8); // true,其中一个条件满足就为trueSystem.out.println(!true); // falseSystem.out.println(!false); // true// 逻辑异或 必须两个不同结果才是trueSystem.out.println(false ^ true); // 结果不同,返回trueSystem.out.println(true ^ false); // 结果不同,返回trueSystem.out.println(true ^ true); // 结果相同,返回falseSystem.out.println(false ^ false); // 结果相同,返回falseSystem.out.println("---------------&& & || | 的区别---------------------");int a = 10;int b = 20;// && 两者都为true结果才为true,前面一方为false后面就不执行System.out.println(a>100 && ++b<10); // a>100 结果为false,&&前面为false,后面就不执行System.out.println(b); // 后面的++b没有执行所以输出20System.out.println(a>100 & ++b<10); // 单&,两边都会执行System.out.println(b); // 单&两边都执行,所以++b执行了,输出结果为21int i = 10;int j = 20;// 双或|| 只要一方为true,结果就为true,后面不执行System.out.println(i>2 || ++j <5);// 后面的++j没有执行,结果为trueSystem.out.println(j);// 后面的++j没有执行,所以结果为20System.out.println(i>2 | ++j <5);System.out.println(j); // 单或|,后面会执行,所以输出结果为21}}
