如果有人能解释为什么会发生以下情况,我将不胜感激。非常感谢。
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 -
我是这个非常有用的网站的新手,我刚刚学会了如何制作和上传 Java 编译消息的屏幕截图。下图复制了我在上面的第一个“编辑”中提供的信息。它显示了示例代码行 #2 的编译错误。