1

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

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

输出:33

我制定了将添加 1 和 2 并按原样打印 3 的逻辑。

然后,我尝试了这个:

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

输出:123

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

4

3 回答 3

5

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

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

如果要显示15,则应执行以下操作:

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

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

于 2011-12-18T20:24:34.527 回答
2
  1. 表达式1 + 2是一个int.
    然后,您将连接"3"到该 int。

  2. 表达式"1" + 2是一个String
    然后你连接3到 that String

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

于 2011-12-18T20:19:44.250 回答
1

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

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

于 2011-12-18T20:20:36.600 回答