奇怪的java打印输出

时间:2011-12-18 20:17:31

标签: java println

我是Java的新手,正在使用简单的打印。首先,我执行了:

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

输出: 33

我编写了逻辑,即将添加1和2,并按原样打印3。

然后,我尝试了这个:

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

输出: 123

应用这种逻辑我得到答案15,无法找出正确的答案,所以我需要你的帮助,所以朋友们。

3 个答案:

答案 0 :(得分:5)

从左侧开始运算符+,因此您的第二个示例将以这种方式解释:

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

如果您想显示15,那么您应该执行以下操作:

System.out.println (“1”+(2+3));

这种方式(2+3)将首先进行评估。

答案 1 :(得分:2)

  1. 表达式1 + 2int 然后,您将"3"连接到该int。

  2. 表达式"1" + 2String 然后,您将3连接到String

  3. 您正在考虑"1" + (2 + 3),因为Java是左关联的,所以不会发生这种情况。

答案 2 :(得分:1)

在第一种情况下,Java添加数字以获得结果3,而附加字符串3使其成为连接字符串:“33”。

在第二种情况下,结果是一个字符串,因为“1”而其他结果被连接成“123”