逻辑运算符前言

    在我们学习Java基础的时候都有了解过逻辑运算符,逻辑运算符把语句连接成更复杂的复杂语句。例如,假设有两个逻辑命题,分别是“正在下雨”和“我在屋里”,我们可以将它们组成复杂命题“正在下雨,并且我在屋里”或“没有正在下雨”或“如果正在下雨,那么我在屋里”。一个将两个语句组成的新的语句或命题叫做复合语句或复合命题。但是在逻辑运算符中还分为两种,一种是普通逻辑运算符,一种是短路逻辑运算符。接下来我们就深入了解一下这两种运算符的区别。

普通逻辑运算符

概述

  与运算符(&):两边的表达式都为true,则结果为true
  或运算符(|):两边的表达式只要一个为true,则结果为true
  非运算符(!):false取反为true,true取反为false,例如 !false就是true
  异或运算符(^):两边的表达式只要不一样,则结果就是true

实例

public class OperatorTest
{
	public static void main(string[] args){
		system.out.printIn(5>3 & 5>2) \\结果为true
		system.out.printIn(5>3 & 5>6) \\false
		system.out.printIn(5>3 | 5>6) \\true
		system.out.printIn(!false) \\true
		system.out.printIn(!true)  \\false
		system.out.printIn(true ^ false)  \\true
		system.out.printIn(true ^ true)  \\flase
		system.out.printIn(false^ false)  \\flase
	}
}

应用场景

    逻辑运算符两边的表达式都需要进行判断,即使通过一个表达式就可以知道最终的结果但是还是需要两个都进行比较的。所以当我们的逻辑表达式两边都需要进行判断的时候就可以选择普通的逻辑表达式

短路逻辑运算符

概述

  短路与运算符(&&):和普通与运算是一致的
  短路或运算符(||):和普通或运算是一致的

实例

public class OperatorTest
{
	public static void main(string[] args){
		int x = 10;
		int y = 8;
		system.out.printIn(x < y && ++x > y) \\结果为false
	}
}

应用场景

  短路运算符通过判断运算符一边的表达式就可以知道最终结果的话,就不会判断第二个表达式,这也就是叫做短路运算符的原因之一,从某种角度来看,短语更加的智能,由于后面的表达式可能不执行,所以执行的效率较高。

逻辑运算符总结

  1.逻辑运算符要求两边的表达式都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型。
  2.短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路的现象。