逻辑运算符:主要用于布尔值的计算 , 结果还是布尔值
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
& | 与 | false&true | false |
| | 或 | false|true | true |
^ | 异或 | false^true | true |
! | 非 | !false | true |
&& | 短路与 | false&&true | false |
|| | 短路或 | false||true | true |
a && b : a双与b 即a且b 一假即假,全真为真 &同理
a || b : a双或b 即a或b 一真即真,全假则假 | 同理
&& 与 & 的区别 :都代表并且的意思 , 但是&&有短路功能 , &没有
短路功能:当&&进行判断时,判断第一个条件为false,直接得出结果为false , 而 & 即使判断第一个条件为false,还要继续判断第二个条件才能的出结果为false
public static void main(String[] args){
//&&具有短路功能,判断第一个条件为false,直接得出结果,不往下进行运算
boolean x = true;
System.out.println(false && (x = false));
System.out.println("x = "+x);
}
&不具备短路功能,不论判断出来第一个的结果为true还是false,都需要对接下来的进行判断
public static void main(String[] args){
//&不具备短路功能,不论判断出来第一个的结果为true还是false,都需要对接下来的进行判断
boolean y= true;
System.out.println(false & (y = false));
System.out.println("y = "+y);
}
当 || 进行判断时 , 判断第一个条件为true,直接得出结果,不往下进行运算
public static void main(String[] args){
//||具有短路功能,判断第一个条件为true,直接得出结果,不往下进行运算
boolean m = true;
System.out.println(true || (m = false));
System.out.println("m = "+m);
}
| 不具有短路功能 , 不论判断出来第一个的结果为true还是false , 都需要对接下来的进行运算
public static void main(String[] args){
//|不具有短路功能,不论判断出来第一个的结果为true还是false,都需要对接下来的进行运算
boolean n = true;
System.out.println(true | (n = false));
System.out.println("n = "+n);
}
异或 : 即两个结果相异的结果为真,反之相同则为假
public static void main(String[] args){
System.out.println(true ^ true); //false
System.out.println(false ^ false); //false
System.out.println(true ^ false); //true
}
异或运算:所谓异或运算,指参与运算的字符串的二进制补码按位异或 , 当两对应的二进制位相异时,结果为1。参与运算的数仍以补码出现。
例如 : 数字 9 异或 数字5 , 结果为“12”。
public static void main(String[] args){
System.out.println(9 ^ 5);
}