原创,转载请留言联系
-
逻辑运算符:
& | 与 | false&true=false;true&true=true;false&false=false | 必须两个都是true才返回true |
| | 或 | false&true=true;true&true=true;false&false=false | 有一个是true就返回true |
^ | 异或 | false^true=true;true&true=false;false^false=false | 两个必须不一样才返回true |
! | 非 | !true=false;!false=true | 取反,本来是true的返回false,本来是false的返回true |
-
&与&&的区别
先来看一个例子:
public class OperatorDemo { public static void main(String[] args){ int a = 1; int b = 2; int c = 3; System.out.println((a>b)&(b>c)); System.out.println((a>b)&&(b>c)); } } # 输出结果: false false
看似两个用法都是一样。实际还是有所区别。
public class OperatorDemo { public static void main(String[] args){ int a = 10; int b = 20; int c = 30; System.out.println((++a>b)&(++b>c)); System.out.println(a); System.out.println(b); } } # 输出: false 11 21
但是:
public class OperatorDemo { public static void main(String[] args){ int a = 10; int b = 20; int c = 30; System.out.println((++a>b)&&(++b>c)); System.out.println(a); System.out.println(b); } } # 输出结果: false 11 20
为什么结果不一样了呢?
原因是这样的,我们都只带,&和&&都是必须双方都为true时才会返回true。
用&&时,如果第一个是false,那么就不会执行第二个条件了,直接返回false了。
而&会把两边都执行完。
所以,效率上肯定是&&比较高。
-
|与||的区别
|与||其实和&与&&的原理一样。
|和||都是有一方为ture是就返回true。
用||时,如果第一个是true,那么就不会执行第二个条件了,直接返回true了。
而|会把两边都执行完。
所以,效率上肯定是||比较高。