逻辑运算符用于连接布尔表达式 最终的结果值为布尔型
在java中不可以写成3<x<6 应该写成x>3&&x<6
与: & 运算规则: 如果两边有一边为false那整个表达式的结果就为false , 只有两边同时为true 结果才为true
或: | 运算规则: 如果两边有一个为true那整个表达式的结果就为true , 只有两边同时为false ,结果才为false
非: ! 运算规则: 真变假 假变真
异或: ^ 运算规则: 两边相同为false,不同为true
代码演示:
public static void main(String[] args) {
System.out.println(true & true ); // T
System.out.println(false & true );// F
System.out.println(true & false );// F
System.out.println(false & false );// F
System.out.println("=========================");
System.out.println(true | true ); // T
System.out.println(false | true );// T
System.out.println(true | false );// T
System.out.println(false | false );// F
System.out.println("=========================");
System.out.println(!true);// F
System.out.println(!false);// T
System.out.println("=========================");
System.out.println(true ^ true ); // F
System.out.println(false ^ true );// T
System.out.println(true ^ false );// T
System.out.println(false ^ false );// F
}
短路与: &&
短路或: ||
好处:效率更高
短路与: &&
基本的运算规则跟 & 相似 , 区别在于 , 如果左边为false,右边不执行,直接把结果false
短路或: ||
基本运算规则 跟 | 相似, 区别在于, 如果左边为true ,右边不执行, 直接把结果true返回
三元表达式:
表达式1 ? 结果1 : 结果2
执行流程:
先去计算表达式1的结果
如果结果为真 则返回结果1 , 否则 返回结果2
代码演示:(获取两个数中大数。)
(int x=3,y=4,z;z = (x>y)?x:y;//z变量存储的就是两个数的大数。)
public class Demo09Operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = (a > b) ? a : b;
System.out.println("c:" + c);
}
}
(比较两个数据是否相同)
public class Demo10Operator {
public static void main(String[] args) {
// 定义两个int类型的变量
int a = 10;
int b = 20;
boolean flag = (a == b) ? true : false;
// boolean flag = (a == b);
System.out.println(flag);
}
}
(获取三个整数中的最大值)
public class Demo11Operator {
public static void main(String[] args) {
// 定义三个int类型的变量
int a = 10;
int b = 30;
int c = 20;
// 先比较两个整数的大值
int temp = ((a > b) ? a : b);
int max = ((temp > c) ? temp : c);
System.out.println("max:" + max);
}
}