2011-12-18 99 views
1

我是Java新手,正在使用簡單的打印。首先,我執行:奇怪的java打印輸出

System.out.println(1 + 2 + "3"); 

輸出:33

我由邏輯1和2將被添加和3將被打印爲是。

然後,我嘗試這樣做:

System.out.println ("1" + 2 + 3); 

輸出:123

運用這個邏輯我回答15,不能工作出正確的答案,所以我需要你的幫助, SO朋友。

回答

5

操作+從左邊,這樣你的第二個例子是這樣解釋的評價:

System.out.println (((「1」+2)+3)); 
====================> "12"+3 
====================> "123" 

如果你想顯示15那麼你應該做到以下幾點:

System.out.println (「1」+(2+3)); 

這樣將首先評估。

2
  1. 表達1 + 2int
    然後,您將"3"連接到該int。

  2. 表達式​​是String
    然後,您將3連接到String

你在考慮"1" + (2 + 3),因爲Java是左關聯的,所以沒有發生。

1

在第一種情況下,Java添加數字以獲得結果3,並且追加字符串3使其成爲連接字符串:「33」。

在第二種情況下,結果是因爲「1」的字符串和別人得到串聯成爲「123」