4

私が見ているプログラムでこのコードスニペットを見つけました。誰かがここで何が起こっているのか説明できますか?

return methodA() || methodB();

methodA と methodB は最終的にブール値を返します。これはある種の例外保護ですか、それともこのステートメントは常に methodA() を返しますか?

4

3 に答える 3

12

結果を呼び出しmethodAて確認します。trueの場合、すぐにtrueを返します。それ以外の場合は、それを呼び出しmethodBて返します。

とにかく、これは短絡演算子として知られています。Javaの演算子についてもう少し学ぶことをお勧めします。おそらく、このようなものがたくさん見られるからです。

短絡動作が望ましくない場合は、

return methodA() | methodB();

これは両方のメソッドを呼び出し、ビット単位または結果(論理和またはブール値と同等)に対して実行し、結果を返します。

于 2013-02-25T15:19:49.173 に答える
3

つまり、methodAreturnsの場合はtrueそれを戻り値として使用し、そうでない場合はの戻り値を使用しますmethodB。カスケード評価された一種の戻り値。

于 2013-02-25T15:20:02.173 に答える
0

以下の短縮形です。

boolean a = methodA();
boolean b = methodB();

if(a) {
    return true;
}
else if(b) {
    return true;
}
else {
    return false;
}

true を返す場合methodA()、methodB() は呼び出されず、true が返されます。MethodA()false を返す場合、methodB()が呼び出され、その値が返されます。

于 2013-02-25T15:28:39.383 に答える