作者tkcn (小安)
看板java
標題Re: [問題] + 的問題
時間Thu Mar 9 23:49:16 2006
※ 引述《seekyou (galagala~N )》之銘言:
我想你可能有些誤會了
所以我重新寫個例子提供你參考
int a = 5;
System.out.print("a = " + a);
這樣執行結果會是: a = 5
書本上說 + 是用來連接印出的資料,
但其實應該說的更精確些。
System.out.print() 所能接受的參數是 "一個" String(字串),
(當然,有可能是其他參數,但是這裡先不提)
而 "a = " + a 的前半段 "a = " 是一個 String,
後半段 a 卻是一個 int,
經由 + 這個運算子,會形成一個新的 String,也就是 "a = 5"。
現在看下一個例子
int a = 5;
System.out.print("2*a = " + a + a);
我期望程式要印出 2*a = 10 ,
但是實際執行的結果卻是 2*a = 55 ,
哪裡出了問題呢?
原來是在 compile 時,"2*a = " + a 會先被處理,
也就是形成新的 String: "2*a = 5",
於是新的式子變成 "2*a = 5" + 5
所以結果自然就變成了 2*a = 55 。
所以在這種情況下,如果你希望 a+a 能夠先被處理,就必須加上括號。
"2*a = " + (a + a)
至於你程式所出現的錯誤訊息,
只是你的 括號 或著 引號 沒有成對,導致 compiler 不知道怎麼處理罷了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.131.69.23