java:4-4逻辑运算符

1. 逻辑运算符

1.1 定义

用于连接多个条件 / 多个关系表达式,最终的结果也是一个boolean值。

1.2 6种逻辑符号的运算规则:【背】

  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

2. 短路与 + 逻辑与

2.1 &&和&的案例

public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//&& 和 ?& 的案例演示
		int age = 50;
		if(age > 20 && age < 90) {
			System.out.println("ok100"); //输出ok100
		}
		
		if(age > 20 && age < 30) {
			System.out.println("ok100"); //不输出
		}
	}
} 

2.2 && 和 & 的区别:

(1)&&:如果第一个条件为 false,则第二个条件不会执行,最终结果为 false,效率高。
(2)&:不管第一个条件是否为 false,第二个条件也要判断,效率低。

public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//区别
		// &&
		int a = 4;
		int b = 9;
		if(a < 1 && ++b < 50) {
			System.out.println("ok300");
		}
		System.out.println("a=" + a + "b=" + b); //输出a=4b=9,&&后不运行

		// &
		if(a < 1 & ++b < 50) {
			System.out.println("ok300");
		}
		System.out.println("a=" + a + "b=" + b); //输出a=4b=10,&&后运行
		}
	}
} 

3. 短路或 + 逻辑或

3.1 案例

public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//演示
		int age = 50;
		if(age > 20 || age < 30) {
			System.out.println("ok100"); 
		} //输出ok100
		if(age > 20 | age < 30) {
			System.out.println("ok200"); 
		} //输出ok200

		//看看区别		
		int a = 4;
		int b = 9;
		if(a>1||++b>4) {
			System.out.println("ok300"); 
		}
		System.out.println("a=" + a + " b=" + b); //a=4b=9
		if(a>1|++b>4) {
			System.out.println("ok300"); 
		}
		System.out.println("a=" + a + " b=" + b); //a=4b=10


	}
} 

3.2||和|的区别

(1)||:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高。
(2):不管如何都会判断2个条件,只要有一个true,最终结果就为true,效率低。
(3)开发中,我们基本使用短路或

4. 逻辑非 + 逻辑异或

4.1 取反

  • 基本规则:
    如果条件true,结果为false。如果条件false,结果为true。
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		// !取反案例
		System.out.println(60 > 20); //输出true
		System.out.println(!(60 > 20)); //输出false
		}
	}
} 

4.2 逻辑异或

  • 基本原则:
    当a和b不同时,结果为true,否则为false。
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		// ^逻辑异或案例
		boolean b = (10 > 1) ^ (3 < 5); 
		System.out.println("b=" + b); //输出false (ab相同)
		boolean b = (10 > 1) ^ (3 > 5); 
		System.out.println("b=" + b); //输出ture  (ab不同)
		}
	}
} 

5. 练习

  1. 易错笔记:

(1)x++ ==6 :先比较,再++。
++y ==6 : 先++,再比较。
(3)if条件为true,后面要运行,所以x=5 --> 6 --> 11。
请添加图片描述

  1. 易错笔记:
    (1)y=true这个是赋值表达,所以它为true。
    (2)if条件为true,后面的code要执行。
    (3)x=false是赋值表达,所以它也为false。

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值