假设我有这样的代码为什么java在与布尔语句连接时忽略print语句的第一部分?
public class Test{
public static void main (String args[]) {
String s = "thrones";
System.out.println("Game of" + "thrones" == s) ;
}
}
上面的代码块的输出仅仅是 “假”
,但不应该,如果我打印
“的真实游戏”然而把括号的(“宝座” == S),其正确
System.out.println("Game of" + ("thrones"==s));
打印“的真实游戏”
我只是好奇它为什么没有在第一个案件中采取打印的第一部分。我只想知道在编译时发生了什么。
谢谢。
'1+ 1 == 2'是真的吗? (或者它会给你一个错误,说你不能添加一个int和一个布尔值?)空格被忽略。 – immibis
不应该打印“假”? – Svante
至少2个潜在问题:1.您不使用'=='比较Java中的字符串。 2.你显然知道你的运算符优先级比我好 - 我会添加一些'()'来明确你的意图是什么...... – John3136