023 逻辑运算符

1、逻辑运算符包含3种:与 (多个条件一起满足)、或 (多个条件有一个满足)、非 (使用 “!”操作,可以实现 true与 false的相互转换)。

			逻辑运算符
NO.		逻辑运算符		描	述
1			&			AND,与
2			&&			短路与
3			|			OR,或
4			||			短路或
5			!			取反,true变 false变 true

2、通过逻辑运算符可以实现若干个条件的连接。

			与、或真值表
NO.		条件1		条件2		&、&& (与)		|、|| (或)
1		true		true			true			true
2		true		false			false			true
3		false		true			false			true
4		false		false			false			false

例43:使用 “非”运算符

public class JavaDemo038 {
	public static void main(String[] args) {
		boolean flag = !(1 > 2);// 1 > 2的结果为 false,取非后为 true
		System.out.println(flag);
	}
}

3、“与”逻辑的主要的特征是进行若干个判断条件的连接,并且如果所有的条件都返回 true的时候,最终才会返回 true;有个条件为 false,则最终的结果就为 false。

例44:“与”逻辑运算符

public class JavaDemo039 {
	public static void main(String[] args) {
		int x = 1;
		int y = 1;
		System.out.println(x == y && 2 > 1);// 输出逻辑运算结果
	}
}

4、关于 “&” 和 “&&” 的区别:
  “与”逻辑的操作需要若干判断条件全部返回 true,最终结果才为 true;如果有一个判断条件为 false,那么不管有多少个 true最终的结果一定就是 false。

  • 普通与逻辑 (&):所有的判断条件都进行判断。
  • 短路与逻辑 (&&):如果前面的判断条件返回了 false,直接中断后续的判断条件执行,最终的结果就是 false。

例45:使用普通 “与”逻辑运算符

public class JavaDemo040 {
	public static void main(String[] args) {
		// 条件1:“1 > 2”返回 false
		// 条件2:“10 / 0 == 0”,执行时会出现 ArithmeticException异常导致程序中断
		System.out.println(1 > 2 & 10 / 0 == 0);
	}
}

5、在程序中任何数字除以0都会产生 ArithmeticException算数异常信息。

例46:使用短路 “与”逻辑运算符

public class JavaDemo041 {
	public static void main(String[] args) {
		// 条件1:“1 > 2” 返回 false
		// 条件2:“10 / 0 == 0”,执行时会出现 ArithmeticException异常导致程序中断
		System.out.println(1 > 2 && 10 / 0 == 0);
	}
}

6、总结:短路 “与”的判断性能要比普通 “与”好。

7、“或”逻辑运算也可以连接若干个判断条件,在这若干个判断条件中有一个判断结果为 true,则最终的结果就是 true。

例47:“或”逻辑运算

public class JavaDemo042{
	public static void main(String[] args){
		int x = 1;
		int y = 1;
		System.out.println(x != y || 2 > 1);
	}
}

8、关于 “|” 和 “||” 的区别:
  “或”逻辑运算的操作特点是若干个判断条件有一个返回了 true,那么最终的结果就是 true。

  • 普通 “或”逻辑 (|):所有的判断条件都执行。
  • 短路 “或”逻辑 (||):若干个判断条件如果有判断条件返回了true,那么后续的条件将不再判断,最终的结果就是 true。

例48:普通 “或”逻辑运算

public class JavaDemo043 {
	public static void main(String[] args) {
		// 条件1:“1 !=2”返回 true
		// 条件2:“10 / 0 == 0”,执行时会出现 ArithmeticException异常导致程序中断
		System.out.println(1 != 2 | 10 / 0 == 0);
	}
}

例49:短路 “与”逻辑运算

public class JavaDemo044 {
	public static void main(String[] args) {
		// 条件1:“1 != 2”返回 true
		// 条件2:“10 / 0 == 0”,执行时会出现 ArithmeticException异常导致程序中断
		System.out.println(1 != 2 || 10 / 0 == 0);
	}
}
023 逻辑运算符023 逻辑运算符 最美不过伊人笑 发布了37 篇原创文章 · 获赞 13 · 访问量 8611 私信 关注
上一篇:【PAT甲级】1133 Splitting A Linked List (25分)


下一篇:2020.2.19GDUT寒假训练排位赛1-E