Java SE(23) 运算符——逻辑运算符

目录

逻辑运算符

&和&&

|和||


逻辑运算符

逻辑运算符用于对布尔类型的数据进行操作,其结果仍是一个布尔型数据

运算符 运算 范例 结果
& true&true true
true&false false
false&true true
false&false false
&& 短路与 true&true true
true&false false
false&true true
false&false false
| true | true true
true | false true
false | true true
false | false false
|| 短路或 true || true true
true || false true
false || true true
false || false false
^ 异或 true^true false
true^false true
false^true true
false^false false
! !true false
!false true

练习:

public class TestOpe11{
	public static void main(String[] args){
		//逻辑与:&   规律:全对为对。
		System.out.println(true&true);     //true
		System.out.println(true&false);    //false
		System.out.println(false&true);    //false
		System.out.println(false&false);   //false
		//短路与:&&  规律:全对为对
		//只要左边表达式是false,右边的表达式不会进行运算,结果为false。
		System.out.println(true&&true);     //true
		System.out.println(true&&false);    //false
		System.out.println(false&&true);    //false
		System.out.println(false&&false);   //false
		
		//逻辑或:|   规律:任一为true,结果为true。
		System.out.println(true|true);     //true
		System.out.println(true|false);    //true
		System.out.println(false|true);    //true
		System.out.println(false|false);   //false
		//短路或:||  规律:任一为true,结果为true。
		//只要左边表达式是true,右边的表达式不会进行运算,结果为true。
		System.out.println(true||true);     //true
		System.out.println(true||false);    //true
		System.out.println(false||true);    //true
		System.out.println(false||false);   //false
		
		//逻辑异或:^  规律:运算符两边的布尔值不同时,结果为true。
		System.out.println(true^true);     //false
		System.out.println(true^false);    //true
		System.out.println(false^true);    //true
		System.out.println(false^false);   //false
		
		//逻辑非:!    规律:相反结果。
		System.out.println(!true);       //false
        System.out.println(!false);      //true
	}
}

 运行结果:

  

  • &和&&

       相同点:运算符&和&&都表示与操作,当且仅当运算符两边的操作数都为true时,其结果为true,否则结果为false。

       不同点:在使用&进行运算时,不论左边为true或者false,右边的表达式都会进行运算

                     如果使用&&进行运算时,当左边为false时,右边的表达式不会进行运算,因此&&被称作短路与。

练习: 

public class TestOpe12{
	public static void main(String[] args){
		//左边为false
		int a=8;
		System.out.println((5>7)&(a++==2));   //false
		System.out.println("a="+a);       //i=9
		
		int b=8;
		System.out.println((5>7)&&(b++==2));   //false
		System.out.println("b="+b);       //左边表达式为flase,右边表达式不进行运输算 i=8
		
		//左边为true
		int m=8;
		System.out.println((5<7)&(m++==2));   //false
		System.out.println("m="+m);       //i=9
		
		int n=8;
		System.out.println((5<7)&&(n++==2));   //false
		System.out.println("n="+n);       //i=9
		
	}
}

  运行结果:

  

  • |和||

       相同点:运算符|和||都表示或操作,当且算符两边的操作数任意一边的值为true时,其结果为true,当两边的值都为false时,其结果为false

       不同点:在使用|进行运算时,不论左边为true或者false,右边的表达式都会进行运算

                     如果使用||进行运算时,当左边为true时,右边的表达式不会进行运算,因此||被称作短路或。

猜你喜欢

转载自blog.csdn.net/wqh101121/article/details/112560587
今日推荐