逻辑运算符的使用
1. &&和&
名称 语法 特点
短路与&& 条件1&&条件2 两个条件都为true,结果为true
逻辑与& 条件1&条件2 两个条件都为true,结果为true
使用区别:
1.&&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高
2.& 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低
示例代码:
public static void main(String[] args) {
//&&短路与 和 & 案例演示
int a=4;
int b = 10;
if(a < 1 && ++b < 90) {
System.out.println("两个条件判断都是对的");
}
System.out.println("a="+a+" b="+b);//4 10
if(a < 1 & ++b < 90) {
System.out.println("两个条件判断都是对的");
}
System.out.println("a="+a+" b="+b);//4 11
}
结果为: a=4 b=10
a=4 b=11
2. ||和|
名称 语法 特点
短路或|| 条件1||条件2 两个条件中只要有一个成立,结果为 true,否则为 false
逻辑与& 条件1|条件2 只要有一个条件成立,结果为 true,否则为 false
使用区别:
1.||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
2.& 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低
示例代码:
public static void main(String[] args) {
//||短路或 和 |逻辑或 案例演示
int a=4;
int b = 10;
if(a > 1 || ++b < 90) {
System.out.println("两个条件判断必有一个是对的");
}
System.out.println("a="+a+" b="+b);//4 10
if(a > 1 | ++b < 90) {
System.out.println("两个条件判断必有一个是对的");
}
System.out.println("a="+a+" b="+b);//4 11
}
结果为: 两个条件判断必有一个是对的
a=4 b=10
两个条件判断必有一个是对的
a=4 b=11
3. !和^
名称 语法 特点
!非(取反) !条件 如果条件本身成立,结果为false,否则为true
^逻辑异或 条件1^条件2 当a和b不同时,则结果为 true,否则为 false
示例代码:
public static void main(String[] args) {
//! 操作是取反 T->F , F -> T
System.out.println(60 > 20); //T
System.out.println(!(60 > 20)); //F
//a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
boolean b = (10 > 1) ^ ( 3 > 5);
System.out.println("b=" + b);//T
b= (10 > 1) ^ ( 3 < 5);
System.out.println("b=" + b);//F
}
结果为: true
false
b=true
b=false