-3

と の 2 つの関数がfunctionA()あります。functionB()どちらも戻り値の型がありbooleanます。

どちらかが true を返し、functionA が true を返した場合、関数 B を実行したくありません。

&& が機能するため (一方が false の場合、もう一方はチェックされません)、 || は機能します。同じように動作しますか?

if(functionA() || functionB()){
//Do Your Work
}

上記のコードは私の要件を満たしますか?

4

7 に答える 7

6

Java 言語仕様、§15.24 で指定されているとおり:

条件付き OR 演算子 || 演算子は | のようなものです ( §15.22.2 )、ただし、左側のオペランドの値が false の場合にのみ右側のオペランドを評価します。

于 2013-07-03T10:27:37.377 に答える
3

最初の関数が 2 番目の関数returns truelogical OR短絡する場合。

http://en.wikipedia.org/wiki/Short-circuit_evaluation

于 2013-07-03T10:26:31.550 に答える
0

Java での遅延評価はfunctionB()ifを回避しfunctionA()ますtrue

if(functionA() | functionB())

このメカニズムを介して取得し、2 つの関数の評価を強制できます。

于 2013-07-03T10:28:36.287 に答える
0

はい、両方を実行したい場合は実行しますif(functionA() | functionB()){

注、縦棒は 1 つだけ

于 2013-07-03T10:29:03.853 に答える
0

はい、これはまさにあなたが望むことを行います。functionA() を実行し、それが true を返さない場合は functionB() を実行します

于 2013-07-03T10:27:33.330 に答える
0

はい、間違いなく実行されfunction A()、true が返された場合function B()は実行されず、他のコードは必要に応じて実行されます。

于 2013-07-03T10:38:58.183 に答える