trueを返すと予想されるときにfalseを返す次の Java コード スニペットがあります。
assertTrue(true || false ? false : false);
ステートメントは、この投稿のために単純化されています (元々は文字列比較を使用していました)。三項演算子を使用しないように単純化できることはわかっていますが、基本的には、Java がこのように評価する理由を理解しようとしています。 :
(true || false) ? false : false
これではなく:
true || (false ? false : false)
trueを評価して終了することを期待しています。なぜそうしないのか誰か知っていますか?