https://blog.csdn.net/m0_37220730/article/details/104242582
JAVA逻辑运算符示例详解:与、或、非、异或
对比表
与(仅左右语句都为真时为真)包括:逻辑与& 和 短路与&& 或(左右语句有一则或超过一则为真时为真)包括:逻辑或| 和 短路或|| 非(取反,假时为真,真时为假)包括:逻辑非! 异或(左右相异时为真,左右相同时为假)包括:逻辑异或^ 1234
| a | b | a&b | a&&b | a|b | a||b | !a | a^b |
|---|---|---|---|---|---|---|---|
| true | true | true | true | true | true | false | false |
| true | false | false | false | true | true | false | true |
| false | true | false | false | true | true | true | true |
| false | false | false | false | false | false | true | false |
与
逻辑与
class LogicAnd{
public static void main(String[] args){
//区分& and &&
//当符号左右都是boolean型变量时,&为逻辑与(无论何种情况,左右语句都执行)
boolean b1 = false;
int num1 = 10;
if(b1&(num1++ >0)){
System.out.println("逻辑与成立");
}else{
System.out.println("逻辑与不成立");
}
System.out.println("num1=" + num1);
// 此时输出结果为
// <<<逻辑与不成立
// <<<num1=11
}
}
123456789101112131415161718
class ShortAnd{
public static void main(String[] args){
//区分& and &&
//&&为短路与(左语句为真则执行右语句,左语句为假则不执行右语句(因为左为假,与运算已不成立,此时短路与不执行右侧语句))
boolean b2 = false;
int num2 = 10;
if(b2&&(num2++ >0)){
System.out.println("短路与成立");
}else{
System.out.println("短路与不成立");
}
System.out.println("num2=" + num2);
// 此时输出结果为
// <<<逻辑与不成立
// <<<num2=10
}
}
123456789101112131415161718
或
class LogicOr{
public static void main(String[] args){
//区分| and ||
//当符号左右都是boolean型变量时,|为逻辑或(无论何种情况,左右语句都执行)
boolean b1 = true;
int num1 = 10;
if(b1|(num1++ >0)){
System.out.println("逻辑或成立");
}else{
System.out.println("逻辑或不成立");
}
System.out.println("num1=" + num1);
// 此时输出结果为
// <<<逻辑或成立
// <<<num1=11
}
}
123456789101112131415161718
短路或
class ShortOr{
public static void main(String[] args){
// 区分| and |
// ||为短路或(左语句为假则执行右语句,左语句为真则不执行右语句(因为左为真,或运算已成立,此时短路与不执行右侧语句))
boolean b2 = true;
int num2 = 10;
if(b2&&(num2++ >0)){
System.out.println("短路或成立");
}else{
System.out.println("短路或不成立");
}
System.out.println("num2=" + num2);
// 此时输出结果为
// <<<逻辑或成立
// <<<num2=10
}
}
123456789101112131415161718
非
逻辑非
class LogicNot{
public static void main(String[] args){
// 逻辑非 !
boolean b = true;
if(!b){
System.out.println("非b为真");
}else{
System.out.println("非b为假");
}
// 此时输出结果为
// <<<非b为假
}
}
1234567891011121314
异或
逻辑异或
class LogicXor{
public static void main(String[] args){
// 逻辑异或 ^
boolean a = true;
booleam b = false;
if(a^b){
System.out.println("a^b为真");
}else{
System.out.println("a^b为假");
}
// 此时输出结果为
// <<<a^b为真
}
}
123456789101112131415