假設我有這樣的代碼爲什麼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