public void complicatedexpression_r(){ int x=20, y=30; boolean b; b = x > 50 && y > 60 || x > 50 && y < -60 || x < -50 && y > 60 || x < -50 && y < -60; System.out.println(b);}//false
&&与操作,||或操作都是短路操作符,
&&与操作时一旦遇到false就进行执行以后关系式(x > 50 && y > 60 )中的后续代码
||或操作时一旦遇到true也进行执行以后关系式中的后续代码
> ,<只会失去true/false
化简为false || false || false || false 后果为false
& ,| 没有短路成果
与 都为true才返回true,只有有true就返回true
或 都为false则返回false,只有有true就返回true
public static void main(String[] args) { int x=20, y=30; boolean b; b = x > 50 && y > 60 || x > 50 && y < -60 || x < 50 && y < 60 || x < -50 && y < -60; System.out.println(b); }false || false || true || false//true
public static void main(String[] args) { int x=20, y=30; boolean b; b = false||false|| true || false; System.out.println(b); }true//与和或的运算根据并不是所谓的真真假假,而是true/false
短路运算符只能用于逻辑表达式内,会影响返回值,返回值只会是true或false;非短路运算符可用于位表达式和逻辑表达式内
也能够说:短路运算只能操作布尔型的,而非短路运算不仅能够操作布尔型,而且能够操作数值型。
举荐应用短路运算符进行逻辑判断,因为短路运算符在肯定水平上能够进步程序运行的效率
局部变量在第一次应用前必须赋值,所谓的应用就是指读取变量的值,所以这里没有任何问题,另一方面,局部变量没有默认值
最初此题即便不晓得短路与 ,只有晓得优先级即可做对。
优先级就不细说了,相似加减乘除运算法令。