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