1.短路与&&和逻辑与&:
&&运算规律:只有当&&左右两边的表达式同时为true,&&运算结果为true
public static void main(String[] args) {
// true && true-->true
boolean result1 = true && true;
("true&&true:" + result1);// true&&true:true
// true && false-->true
boolean result2 = true && false;
("true&&false:" + result2);// true&&false:false
// false && true-->true
boolean result3 = false && true;
("false&&true:" + result3);// false&&true:false
// fasle && fasle-->false
boolean result4 = false && false;
("false&&false:" + result4);// false&&false:false
}
&运算规律:只有当&左右两边的表达式同时为true,&运算结果为true
public static void main(String[] args) {
// true & true-->true
boolean result5 = true & true;
("true&true:" + result5);// true&true:true
// true & false-->true
boolean result6 = true & false;
("true&false:" + result6);// true&false:false
// false & true-->true
boolean result7 = false & true;
("false&true:" + result7);// false&true:false
// fasle & fasle-->true
boolean result8 = false & false;
("false&false:" + result8);// false&false:false
}
&&和&的区别:
&&具有短路功能,当&&左边表达式为false的时候,直接判断整个&&运算结果为false,&&右边不再进行计算
&不具有短路功能,不管&左边表达式的结果为true还是false,&右边表达式都要进行计算
2.短路或 || 和逻辑或 | :
||运算规律:只要||左右两边有一个为true,||运算结果为true
public static void main(String[] args) {
// true || true-->true
boolean result1 = true || true;
("true||true:" + result1);// true||true:true
// true || false-->true
boolean result2 = true || false;
("true||false:" + result2);// true||false:true
// false || true-->true
boolean result3 = false || true;
("false||true:" + result3);// false||true:true
// fasle || fasle-->false
boolean result4 = false || false;
("false||false:" + result4);// false||false:false
}
|运算规律:只要|左右两边有一个为true,|运算结果为true
public static void main(String[] args) {
// true | true-->true
boolean result5 = true | true;
("true|true:" + result5);// true|true:true
// true | false-->true
boolean result6 = true | false;
("true|false:" + result6);// true|false:true
// false | true-->true
boolean result7 = false | true;
("false|true:" + result7);// false|true:true
// fasle | fasle-->true
boolean result8 = false | false;
("false|false:" + result8);// false|false:false
}
||和|的区别:
||具有短路功能,当||左边表达式为true的时候,直接判断整个||运算结果为true,||右边不再进行计算
|不具有短路功能,不管|左边表达式的结果为true还是false,|右边表达式都要进行计算
3.条件运算符(conditional operator)有时候也称为三元运算符(ternary operator,或者trinary operator),因为它是唯一需要 3 个操作数的运算符:
条件 ? 表达式1 : 表达式2 |
x < 0 ? y = 10 : z = 20; |
(1) 如果表达式1的值为真(非0值),则表达式的值是表达式2的值;
(2) 如果表达式1的值为假(0值),则表达式的值是表达式3的值
嵌套条件运算符:
语法规则:
条件1?(条件2?表达式1:表达式2):(条件3?表达式3:表达式4);
执行规律:
条件1为true,继续判断条件2,条件2为true,执行表达式1,条件2为false,执行表达式2
条件1为false,继续判断条件3,条件3为true,执行表达式3,条件3为false,执行表达式4
public static void main(String[] args) {
//获取3个数中的最大值或者最小值
int a = 10;
int b = 30;
int c = 20;
int max =a>b?(a>c?a:c):(b>c?b:c);
("最大值:"+max);
int min = a>b?(b>c?c:b):(a>c?c:a);
("最小值:"+min);
}