上期知识回顾
自增自减运算符(练习)
//自增自减运算符
y的值是多少?
int x = 10;
int y = x++ + x++ + x++;
System.out.println(y);
自增自减运算符(练习)
//自减运算符
//b的值是多少?
int a = 10;
int b=a--;
System.out.println(b);
我们把运算符写到前面 结果变化
1.关系运算符
注意事项:关系运算符的结果都是boolean类型,要么是true 要么是false。千万不要把’'误写成’=‘,’‘是判断是否相等的关系,‘=’是赋值
判断值是否相等
1.2逻辑运算符概述
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是true或false。
在数学中,一个数据x,大于3,小于6,我们可以这样来进行表示:3<x<6。在Java中,需要把上面的式子先进行拆解,再进行合并表达。
拆解为: x>3和x<6
合并为: x>3&&x<6
&&其实就是一个逻辑运算符。
我们可以这样说,逻辑运算符,是用来连接关系表达式的运算符。当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。
1.2.1逻辑运算符
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是true或false
&逻辑与表达式
//&
System.out.println("&并且");
System.out.println(true&true);
System.out.println(true&false);
System.out.println(false&false);
int a = 10;
int b = 20;
int c = 30;
//a>b false b>c false
System.out.println(a>b&b>c); //false
//a<b true b<c true
System.out.println(a<b&b<c);//true
//a<b true b>c false
System.out.println(a<b&b>c);//false
逻辑异或表达式 与逻辑非表达式
System.out.println("-----------逻辑异或----------");
System.out.println(true^false);//true
System.out.println(true^true);//false
System.out.println(!true);//相反值 //false
1.2.2短路逻辑运算符
只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算。逻辑与&
,无论左边真假,右边都要执行
。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。短路或,如果左边为假,右边执行;如果左边为真,右边不执行。3>6&&4<10
3>6 false
int a=10;int b=20;
System. out. println((a++>100)&(b++>100)) ;
System. out. println("a:"+a) ;
System. out. println("b:"+b);
逻辑与 与短路与的区别 &
int a=10;
int b=20;
// 左边 & 右边 都必须为true 则返回结果是为true
//a++ > 100 返回为false (b++>10)true
// 左边返回false 右边不会执行
System. out. println((a++>100)&&(b++>100)) ;
System. out. println("a:"+a) ;
System. out. println("b:"+b);
逻辑与 与短路与的区别 &&
逻辑或 与短路或的区别 |
int a=10;
int b=20;
System.out.println("短路或");
//或者--左边喝右边只要 有一个返回true 最终结果就返回true
//(a++>1) true b++>100 false
System. out. println((a++>1)|(b++>100)) ;
System. out. println("a:"+a) ;
System. out. println("b:"+b);
逻辑或 与短路或的区别 ||
int a=10;
int b=20;
System.out.println("短路或");
//逻辑或 左边为true 不会判断右边 就不会执行 就不会加减
//(a++>1) true b++>100 false
System. out. println((a++>1)||(b++>100)) ;
System. out. println("a:"+a) ;
System. out. println("b:"+b);