第4节运算符(下)
逻辑运算符
逻辑运算符概述
在数学中,一个数据x,大于3,小于6,我们可以这样来进行表示:3<x<6。
在Java中,需要把上面的式子先进行拆解,再进行合并表达。
拆解为:x>3和x<6
合并为:x>3&&x<6
&&其实就是一个逻辑运算符。
我们可以这样说,逻辑运算符,是用来连接关系表达式的运算符。
当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。
& 逻辑与 a&b,a和b都是true,结果为true,否则为false
| 逻辑或 a|b,a和b都是false,结果为false,否则为true
^ 逻辑异或 a^b,a和b结果不同为true,结果相同为false
! 逻辑非 !a,结果和a的结果正好相反
/* 逻辑运算符 */ public class OperatorDemo07{ public static void main(String[] args){ //定义变量 int i=10; int j=20; int k=30; //& 有false则false System.out.println((i>j)&(i>k)); //false & false System.out.println((i<j)&(i>k)); //true & false System.out.println((i>j)&(i<k)); //false & true System.out.println((i<j)&(i<k)); //true & true System.out.println("------------"); //| 有true则true System.out.println((i>j)|(i>k)); //false | false System.out.println((i<j)|(i>k)); //true | false System.out.println((i>j)|(i<k)); //false | true System.out.println((i<j)|(i<k)); //true | true System.out.println("------------"); //^ 相同为false,不同为true System.out.println((i>j)^(i>k)); //false ^ false System.out.println((i<j)^(i>k)); //true ^ false System.out.println((i>j)^(i<k)); //false ^ true System.out.println((i<j)^(i<k)); //true ^ true System.out.println("------------"); //!结果正好相反 System.out.println((i>j)); //false System.out.println(!(i>j)); //!false System.out.println(!!(i>j)); //!!false System.out.println(!!!(i>j)); //!!!false } }
短路逻辑运算符
&& 短路与 作用和&相同,但是有短路效果
|| 短路或 作用和|相同,但是有短路效果
/* 短路逻辑运算符 */ public class OperatorDemo08{ public static void main(String[] args){ //定义变量 int i=10; int j=20; int k=30; //&& 有false则false System.out.println((i>j)&&(i>k)); //false & false System.out.println((i<j)&&(i>k)); //true & false System.out.println((i>j)&&(i<k)); //false & true System.out.println((i<j)&&(i<k)); //true & true System.out.println("------------"); //|| 有true则true System.out.println((i>j)||(i>k)); //false | false System.out.println((i<j)||(i>k)); //true | false System.out.println((i>j)||(i<k)); //false | true System.out.println((i<j)||(i<k)); //true | true System.out.println("------------"); //&&和& //System.out.println((i++ > 100)&(j++ > 100));//false & false //System.out.println("i:"+i+",j:"+j);//运行结果false i:11,j:21 System.out.println((i++ > 100)&&(j++ > 100));//false && false System.out.println("i:"+i+",j:"+j);//运行结果false i:11,j:20 } }
注意事项:
逻辑与&,无论左边真假,右边都要执行
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
最常用的逻辑运算符:&&,||,!
三元运算符
格式:关系表达式?表达式1:表达式2;
范例:a>b?a:b;
计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运行结果
如果值为false,表达式2的值就是运行结果
/* 三元运算符 */ public class OperatorDemo09{ public static void main(String[] args){ //定义两个变量 int a=10; int b=20; //获取两个数据中的较大值 int max = a > b ? a : b; //输出结果 System.out.println("max:"+max); } }

浙公网安备 33010602011771号