1 、与(&), 或(|),非(!),异或(^)
package cn.nrsc.demo02;
/*
* 逻辑运算符: &, |, ^, !
* &(与): 只要有一边为fale, 那么就是false
* |(或): 只要有一边为true, 那么就是true
* ^(异或): 只要是相同的boolean值, 那么就是false, 不相同才是true
* 解释: 用来连接boolean(关系表达式)表达式,或者是boolean取值都可以, 表达式返回的结果还是一个boolean类型
*
*
* 比如你找女朋友有两个条件: 1.长得像凤姐 2.生高180cm
*/
public class Demo03LuoJi {
public static void main(String[] args) {
int a = 10;
int b = 11;
int c = 12;
// &
System.out.println((a > b) & (a < c));// false & true;
System.out.println((b < c) & (b > a));// true & true; --> true
// |
System.out.println(true | false);// true
System.out.println(false | false);// false
System.out.println(true | true);// true
// ^
System.out.println(true ^ true);// false
System.out.println(false ^ false);// false
System.out.println(true ^ false);// true
// !
System.out.println(!true);// false
System.out.println(!false);// true
System.out.println(!!false);// false
int x = 10;
int y = 20;
boolean bool = (x >= y) & (y > 15);
System.out.println(bool);// false
}
}
2 、双与(&&)和双或(||)
package cn.nrsc.demo02;
/*
* 逻辑运算符(双与, 双或): && ||
* 解释: 双与和双或 得到的结果 和 单与和单或 是完全一样的!
*
* 区别:
* && 和 & :
* && 一旦判断到左边是false之后, 右边就不参与运算了
* &: 不管左边是true还是false, 右边都参与运算
*
* || 和 |
* || 一旦判断左边是true之后, 右边就不参与运算了
* | 不管左边是true还是false, 右边都参与运算
*
*
* 注意: 对于只是要判断一个表达式的结果来讲, 双与, 双或的计算效率高些!
*
*/
public class Demo04LuoJi {
public static void main(String[] args) {
int a = 10;
int b = 11;
int c = 12;
// &
System.out.println((a > b) && (a < c));// false & true;--> false
System.out.println((b < c) && (b > a));// true & true; --> true
// |
System.out.println(true || false);// true
System.out.println(false || false);// false
System.out.println(true || true);// true
System.out.println("===============");
int i = 5;
int j = 6;
System.out.println((i > j) && (++j > 3));// false
System.out.println(j);// 6
System.out.println((i > j) & (++j > 3));// false
System.out.println(j);// 7
int x = 10;
int y = 11;
System.out.println((x < y) || (++y > 15));// true
System.out.println(y);// 11
System.out.println((x < y) | (++y > 15));
System.out.println(y);// 12
}
}