// && : 计算式两边的值都为true的情况,则整个计算式的结果才为true; // || : 计算式有一边的值为true的情况,则整个计算式的结果就为true; // ! : 整个计算式的值为true的情况,则整个计算式的结果就为false;
1 // 逻辑运算符: 与(&&)and 或(||)or 非(取反) 2 boolean b1 = true; 3 boolean b2 = false; 4 5 System.out.println("b1 && b2: " + ( b1 && b2 )); // false 6 System.out.println("b1 || b2: " + ( b1 || b2 )); // true 7 System.out.println("!(b1 && b2): " + !( b1 && b2 )); // true
短路运算符就是从左到右的运算中前者满足要求,就不再执行后者了; 可以理解为:
&&为取假运算,从左到右依次判断,如果遇到一个假值,就返回假值,以后不再执行,否则返回最后一个真值;
|| 为取真运算,从左到右依次判断,如果遇到一个真值,就返回真值,以后不再执行,否则返回最后一个假值。
1 // 短路运算符 2 int c = 5; 3 boolean b3 = (c<4) && (c++ > 4); 4 boolean b4 = (c<4) || (c++ > 4); 5 6 System.out.println("c< 4 =" + (c<4)); // false 7 System.out.println("c++ > 4 =" + (c++ > 4 )); // true 8 System.out.println("b3 = " + b3); // false 9 System.out.println("b4 = " + b4); // true