【发布时间】:2016-04-02 16:49:06
【问题描述】:
下面的代码示例为什么第一个加法 (1/2+1/2) 打印 0 而第二个加法打印 00。
System.out.println(1/2+1/2+"=1/2+1/2");
System.out.println("1/2+1/2="+1/2+1/2);
输出:
0=1/2+1/2
1/2+1/2=00
【问题讨论】:
-
因为它是从左到右的。第一个是
1/2,即0(整数除法),然后1/2又是0。所以0+0 = 0然后它将连接到字符串1/2+1/2。对于第二个,它将 concat(1/2) 到String"1/2+1/2=` 其中 (1/2) 再次为 0。然后再次为下一个