java后端学习-第一部分java基础:关系运算符和逻辑运算符

一、关系运算符(比较运算符)

  1. 关系运算符的结果都是boolean类型,也就是说,要么是true,要么是false。
  2. 关系表达式经常用在if结构的条件中或循环结构的条件中。

public class RelationalOperator{
	public static void main(String[] args) {
		int a = 9;//开发中,不可以使用a,b,c等
		int b = 8;
		System.out.println(a > b);//T
		System.out.println(a >= b);//T
		System.out.println(a <= b);//F
		System.out.println(a < b);//F
		System.out.println(a == b);//F
		System.out.println(a != b);//T
		boolean flag = a > b;//T
		System.out.println("flag = " + flag);//T
	}
}

  • 细节说明
    1. 关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false。
    2. 关系运算符组成的表达式,我们称为关系表达式。 a > b
    3. 比较运算符"=="不能误写成"="

二、逻辑运算符
用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值。

  1. 短路与 && , 短路或 ||,取反 !
  2. 逻辑与 &,逻辑或 |,^ 逻辑异或

说明逻辑运算规则:

  1. a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false。
  2. a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false。
  3. a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false。
  4. a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false。
  5. !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true。
  6. a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false。
  • 短路与与逻辑与
    1. &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高。
    2. & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低。
    3. 开发中, 我们使用的基本是使用短路与&&, 效率高。
/**
 * 演示逻辑运算符的使用
 */
public class LogicOperator01{
	public static void main(String[] args) {
		//&&短路与  和 & 案例演示
		int age = 50;
		if(age > 20 && age < 90) {
			System.out.println("ok100");
		}

		//&逻辑与使用
		if(age > 20 & age < 90) {
			System.out.println("ok200");
		}

		//区别
		int a = 4;
		int b = 9;
		//对于&&短路与而言,如果第一个条件为false ,后面的条件不再判断
		//对于&逻辑与而言,如果第一个条件为false ,后面的条件仍然会判断
		if(a < 1 & ++b < 50) {
			System.out.println("ok300");
		}
		System.out.println("a=" + a + " b=" + b);// 4 10

	}
}

短路或|| 两个条件中只要有一个成立,结果为 true,否则为 false
|逻辑或 只要有一个条件成立,结果为 true,否则为 false

//演示 | 和||的使用
public class LogicOperator02{
	public static void main(String[] args) {
		//||短路或  和 |逻辑或 案例演示
		//|| 规则: 两个条件中只要有一个成立,结果为true,否则为false
		//| 规则: 两个条件中只要有一个成立,结果为true,否则为false
		int age = 50;
		if(age > 20 || age < 30) {
			System.out.println("ok100");
		}

		//&逻辑与使用
		if(age > 20 | age < 30) {
			System.out.println("ok200");
		}

		//看看区别
		//(1)||短路或:如果第一个条件为true,
		//则第二个条件不会判断,最终结果为true,效率高
		//(2)| 逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低
		int a = 4;
		int b = 9;
		if( a > 1 || ++b > 4) { // 可以换成 | 测试
			System.out.println("ok300");
		}
		System.out.println("a=" + a + " b=" + b); //4 10

	}
}

  • || 和 | 使用区别

    1. ||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
    2. | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低
    3. 开发中,我们基本使用 ||
  • ! 非(取反) 如果条件本身成立,结果为 false,否则为 true

  • a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

//! 和^案例演示
public class InverseOperator{
	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
	}
}

posted @ 2021-03-15 21:48  夜月薇凉映银弩  阅读(249)  评论(0编辑  收藏  举报