2011-12-18 102 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”