如果Java已经被证明是错误的,它还会继续使用条件吗?
假设条件如下所示:如果Java已经被证明是错误的,它还会继续使用条件吗?,java,conditional-statements,Java,Conditional Statements,假设条件如下所示: if (false && true) //Code boolean dividesToTwo (int operand1, int operand2) { if ((operand2 != 0) && operand1 / operand2 == 2) return true; return false; } 它是否会在达到真值之前脱离条件,因为假and&&永远不会
if (false && true)
//Code
boolean dividesToTwo (int operand1, int operand2) {
if ((operand2 != 0) && operand1 / operand2 == 2)
return true;
return false;
}
它是否会在达到真值之前脱离条件,因为假and&&永远不会是真的
另外,如果您有这样的代码:
if (false && true)
//Code
boolean dividesToTwo (int operand1, int operand2) {
if ((operand2 != 0) && operand1 / operand2 == 2)
return true;
return false;
}
它会成功地按预期工作,还是会因为被零除而产生错误?(如果第二个操作数为零)是,如果计算了(false&&true),在看到false时,条件将从此处停止计算(即在达到true之前)
然而,如果它是一个OR(| |)操作,它必须在确定它是真是假之前检查第二部分
对于第二个问题,它将按预期运行。零的除法不会发生
if ((operand2 != 0) && operand1 / operand2 == 2)
这意味着如果2=0
则由于和&
的行为,只会发生除法。如果前半部分为真,则只会执行后半部分。如果前半部分为false
,则不会执行后半部分
其中,仅当第一个参数不足以确定表达式的值时,才执行或计算第二个参数:
关于问题的第一部分,请参见。这称为短路评估:
- 当使用
时,仅当第一部分为真时才计算第二部分&&
- 当使用
时,仅当第一部分为false时,才计算第二部分|
是的,这将按预期工作如果
操作数2
为零,则计算将被取消,且不会发生零除 &&
是条件and运算符,根据规范要求具有短路语义。所以,是的,这是以前问过的。看看这个:你试过了吗?