逻辑运算符(LogicOperator)
-
连接多个条件(多个关系表达式),最终结果也是一个boolean
-
&&和&基本规则
名称 语法 特点 短路与&& 条件1&&条件2 两个条件都为true,结果为true,否则为false 逻辑与& 条件1&条件2 两个条件都为true,结果为true,否则为false //&&短路与和&案例演示 int age = 50; if(age > 20 && age < 90){ System.out.println("ok100"); } //&逻辑与使用 if(age > 20 & age < 90){ System.out.println("ok100"); } //区别 int a = 4; int b = 9; //对于&&短路与而言,如果第一个条件为false,后面的条件不再判断 if(a < 1 && ++b < 50){//++b没有执行 System.out.println("ok300"); } System.out.println("a=" + a + "b=" + b);//4 9 //对于&逻辑与而言,如果第一个条件为false,后面的条件仍然会判断 if(a < 1 & ++b < 50){//++b会执行 System.out.println("ok300"); } System.out.println("a=" + a + "b=" + b);//4 10
开发中,使用的多数是短路与&&,效率高
-
||和|基本规则
名称 语法 特点 短路或|| 条件1||条件2 两个条件中只要有一个成立,结果为true 逻辑或| 条件1|条件2 只要有一个条件成立,结果为true //||短路或和|案例演示 int age = 50; if(age > 20 || age < 30){ System.out.println("ok100"); } //|逻辑或使用 if(age > 20 | age < 30){ System.out.println("ok200"); } //区别 //(1)||短路或:如果第一个条件为true //则第二个条件不会判断,最终结果为true,效率高 int a = 4; int b = 9; if(a > 1 || ++b < 50){//++b没有执行 System.out.println("ok300"); } System.out.println("a=" + a + "b=" + b);//4 9 //(2)|逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低 int a = 4; int b = 9; if(a > 1 | ++b < 50){//++b执行 System.out.println("ok300"); } System.out.println("a=" + a + "b=" + b);//4 10
-
!取反基本规则
名称 语法 特点 !非(取反) !条件 如果条件本身成立,结果为false,否则为true //!取反使用 T->F , F->T System.out.println(60 > 20);//T System.out.println(!(60 > 20));//F
-
a^b:逻辑异或,当a和b不同时,则结果为true,否则为false
boolean b = (10 > 1) ^ (3 < 5); System.out.println("b=" + b);//F