逻辑运算符
&& 短路与
&&运算规律:只有当&&左右两边的表达式同时为true,&&运算结果为true
&运算规律:只有当&左右两边的表达式同时为true,&运算结果为true
// true && true-->true
boolean result1 = true && true;
System.out.println("true&&true:" + result1);// true&&true:true
// true && false-->flase
boolean result2 = true && false;
System.out.println("true&&false:" + result2);// true&&false:false
// false && true-->false
boolean result3 = false && true;
System.out.println("false&&true:" + result3);// false&&true:false
// fasle && fasle-->false
boolean result4 = false && false;
System.out.println("false&&false:" + result4);// false&&false:false
// true & true-->true
boolean result5 = true & true;
System.out.println("true&true:" + result5);// true&true:true
// true & false-->flase
boolean result6 = true & false;
System.out.println("true&false:" + result6);// true&false:false
// false & true-->flase
boolean result7 = false & true;
System.out.println("false&true:" + result7);// false&true:false
// fasle & fasle-->flase
boolean result8 = false & false;
System.out.println("false&false:" + result8);// false&false:false
|| 短路或
||运算规律:只要||左右两边有一个为true,||运算结果为true
|运算规律:只要|左右两边有一个为true,|运算结果为true
// true || true-->true
boolean result1 = true || true;
System.out.println("true||true:" + result1);// true||true:true
// true || false-->true
boolean result2 = true || false;
System.out.println("true||false:" + result2);// true||false:true
// false || true-->true
boolean result3 = false || true;
System.out.println("false||true:" + result3);// false||true:true
// fasle || fasle-->false
boolean result4 = false || false;
System.out.println("false||false:" + result4);// false||false:false
// true | true-->true
boolean result5 = true | true;
System.out.println("true|true:" + result5);// true|true:true
// true | false-->true
boolean result6 = true | false;
System.out.println("true|false:" + result6);// true|false:true
// false | true-->true
boolean result7 = false | true;
System.out.println("false|true:" + result7);// false|true:true
// fasle | fasle-->false
boolean result8 = false | false;
System.out.println("false|false:" + result8);// false|false:false
! 非
!运算规律:当表达式的值为true,进行!运算后,结果为false;
当表达式的值为false,进行!运算后,结果为true
// !
boolean bool1 =true;
boolean bool2 =false;
//!true:false
boolean result1 =!bool1;
System.out.println("!true:"+result1);//!true:false
//!false:true
boolean result2 =!bool2;
System.out.println("!false:"+result2);//!false:true
&&和&的区别:
&&具有短路功能,当&&左边表达式为false的时候,直接判断整个&&运算结果为false,&&右边不再进行计算
&不具有短路功能,不管&左边表达式的结果为true还是false,&右边表达式都要进行计算
||和|的区别:
||具有短路功能,当||左边表达式为true的时候,直接判断整个||运算结果为true,||右边不再进行计算
|不具有短路功能,不管|左边表达式的结果为true还是false,|右边表达式都要进行计算
条件运算符
条件运算符(三目运算符或三元运算符)
语法格式
条件?表达式1:表达式2;
执行规律:
条件为true,执行表达式1
条件为false,执行表达式2
// 需求:获取2个数里面的最大值
int num1 = 1000;
int num2 = 200;
int max = num1 > num2 ? num1 : num2;
System.out.println("最大值:"+max);
int min =num1>num2?num2:num1;
System.out.println("最小值:"+min);
嵌套条件运算符:
语法规则:
条件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
//获取3个数中的最大值或者最小值
int a = 30;
int b = 20;
int c = 10;
int max =a>b?(a>c?a:c):(b>c?b:c);
int min =a>b?(b>c?c:b):(a>c?c:a);
System.out.println("最大值为:"+max);
System.out.println("最小值为:"+min);
运算符优先级
单目运算符包括! ++ --,优先级别高
优先级别最低的是赋值运算符
可以通过()控制表达式的运算顺序,()优先级最高
从右向左结合性的只有赋值运算符、三目运算符和单目运算符
算术运算符 > 关系运算符 > 逻辑运算符