逻辑运算符:符号两边的数据,数据类型是确定的,只能是bollean类型
得到的结果,boolean类型
先声明4个boolean类型的数据
boolean b1= true;
boolean b2= true;
boolean b3= false;
boolean b4= false;
1.与运算&
规则:同时成立才成立
System.out.println(b1&b2);//true
System.out.println(b1&b3);//false
System.out.println(b3&b4);//false
2.或运算 |
规则:同时不成立才不成立
System.out.println(b1|b2);//true
System.out.println(b1|b3);//true
System.out.println(b3|b4);//false
3.异或运算^
异或运算——关心的是两边的boolean类型的数据是否相同
规则:两边的boolean 类型的数据,想用的结果为false,不同的结果为true
System.out.println("异或运算的结果");
System.out.println(b1^b2);//false
System.out.println(b1^b3);//true
System.out.println(b3^b4);//false
4.非运算!
规则:直接取反面的值true-->false false-->true
System.out.println("非运算的结果");
System.out.println(!b1);//false
System.out.println(!b3);//true
&&和&、||和|
情景展示:
与运算:两边都是true,结果才是true
如果左边给出的结果是true,仍旧需要判断右边的boolean类型的数据,
如果是true,才能得到true的结果
如果是false,结果就是false
如果左边给出的结果是false,无论右边是什么,结果一定是false
这种情况,可以跳过右边得boolean类型结果得判断,直接获取到结果
或运算:两边都是false,结果才是false
如果左边的结果是false,仍旧要判断boolean的数据,
若是true 结果给出true
如果左边给出的结果是true,无论右边是什么,结果则必定是true,
这种情况,可以跳过右边的boolean类型结果的判断,直接给出对应的结果
// 测试 &| 是否存在对于特殊情况的处理
int x=10,y=10;
boolean r=x++>y++&x++>y++;
System.out.println(r);
System.out.println(x);
//x=12,说明&没有对于左边是false的时候,进行跳过右边执行的处理
System.out.println(y);
boolean r1=x++>y++&x++>y++;
System.out.println(r1);
System.out.println(x);
System.out.println(y);
&&和&的区别:
&&短路与:针对于与运算的特殊情况进行了特殊的处理
当与运算中左边给出boolean类型的数据是false的时候,跳过右边的boolean类型的数据的执行,直接给出最终的结果。
跳过右边的执行(短路右边的执行)
当与运算中左边给出的是true之后,执行规则和&没有区别——左右都执行
&按位与:无论如何,都会按照从左到右的顺序,依次执行每一个boolean类型的数据的判断
||和|的区别:
|| 短路或 : 针对于或运算的特殊情况做出了特殊的处理
当或运算中左边给出的boolean类型的数据是true的时候, 跳过右边的boolean类型数据的执行, 直接给出最终的结果
当或运算中左边给出的是false的时候, 仍旧会判断右边
| 按位或: 无论如何, 都会按照从左到右的顺序, 依次执行每一个boolean类型数据的判断
关系运算符
6种关系运算符
==、!=、>、>=、<、<=
// 1. 给出的结果是boolean类型的数据
int x=40;
int y=50;
System.out.println(x == y);//x的值和y的值是否相同/相等
System.out.println(x != y);//x的值和y的值是否不同/不等
System.out.println(x > y);//x的值是否大于y的值
System.out.println(x >= y);//x的值是否大于等于y的值
System.out.println(x < y);//x的值是否小于y的值
System.out.println(x <= y);//x的值是否小于等于y的值