私が見ているプログラムでこのコードスニペットを見つけました。誰かがここで何が起こっているのか説明できますか?
return methodA() || methodB();
methodA と methodB は最終的にブール値を返します。これはある種の例外保護ですか、それともこのステートメントは常に methodA() を返しますか?
私が見ているプログラムでこのコードスニペットを見つけました。誰かがここで何が起こっているのか説明できますか?
return methodA() || methodB();
methodA と methodB は最終的にブール値を返します。これはある種の例外保護ですか、それともこのステートメントは常に methodA() を返しますか?
結果を呼び出しmethodA
て確認します。trueの場合、すぐにtrueを返します。それ以外の場合は、それを呼び出しmethodB
て返します。
とにかく、これは短絡演算子として知られています。Javaの演算子についてもう少し学ぶことをお勧めします。おそらく、このようなものがたくさん見られるからです。
短絡動作が望ましくない場合は、
return methodA() | methodB();
これは両方のメソッドを呼び出し、ビット単位または結果(論理和またはブール値と同等)に対して実行し、結果を返します。
つまり、methodA
returnsの場合はtrue
それを戻り値として使用し、そうでない場合はの戻り値を使用しますmethodB
。カスケード評価された一種の戻り値。
以下の短縮形です。
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()
が呼び出され、その値が返されます。