没有括号的Java if语句会产生意外行为
为什么这样做有效:
if(name.equals("email_stub")) {
if(emailStub == "")
emailStub = results.getString("text");
} else if(name.equals("fax")) {
if(fax == "")
fax = results.getString("text");
}
但如果没有第一层括号,它将无法工作,反而无法在逻辑上分隔if语句。i、 e.它永远不会超出第一个if语句,也不会按预期工作
if(name.equals("email_stub"))
if(emailStub == "")
emailStub = results.getString("text");
else if(name.equals("fax"))
if(fax == "")
fax = results.getString("text");
当我遇到这个问题时,我觉得很奇怪
# 1 楼答案
因为:
实际上是这样的:
如果没有花括号,
else
将引用它前面的第一个if
正如@Hovercraft所评论的:
见How do I compare strings in Java?