誰かが次のことが起こっている理由を説明していただければ幸いです。どうもありがとう。
boolean b = true;
// Compiles OK.
// The LHS "assignment operand" requires no ()parentheses.
if (b=true || b==true);
// Reverse the ||'s operands, and now the code doesn't compile.
if (b==true || b=true);
// Add () around the RHS "assignment operand", and the code now compiles OK.
if (b==true || (b=true));
編集 -
ところで、コード行 #2 のコンパイル エラーは「予期しない型」であり、短絡 OR 演算子がある場所で発生します。
if (b==true || b=true);
// ^ "unexpected type" compilation error occurs here.
編集 2 -
この質問で見つかったコード フラグメントは「高度に人為的な Java コーディング」の例であり、その結果、専門的に書かれたコードでは見られないことに注意してください。
編集 3 -
私はこの信じられないほど便利な Web サイトを初めて使用し、Java のコンパイル メッセージのスクリーンショットを作成してアップロードする方法を学びました。次の画像は、上記の最初の「編集」で提供した情報を複製したものです。これは、例のコード行 #2 のコンパイル エラーを示しています。