使用“+” - 添加或连接
use of '+' - addition or concatenation
代码片段 1:
Long [] a1 = {3L,4L,5L};
System.out.print(a1[0].toString() + a1[1] + a1[2]);
//输出:345
代码片段 2:
Long [] a1 = {3L,4L,5L};
System.out.print(a1[0] + a1[1] + a1[2] + " ");
//输出:12
在片段 1 中,我们将“+”用作加法,因此我们有 3+4+5 = 12
然而,使用相同的逻辑,在片段 2 中,为什么我们没有 37 而不是 345
Java 计算表达式 从左到右
在你的情况下 System.out.print(a1[0] + a1[1] + a1[2] + " ")
它首先评估 ""
它是字符串然后它连接 ""
与 a1[2]
值等等......这就是为什么你得到那个输出 345
它不是加法,它是字符串的连接。
传递给 print
的表达式从左到右求值。如果 print
语句中的第一个表达式是字符串,则 +
运算符将被视为字符串连接。如果第一个表达式是数字,+
运算符将被视为加法。
顺便说一句,与您在问题中写的不同,由于字符串连接,第一个片段输出 345。
代码片段 1:
Long [] a1 = {3L,4L,5L};
System.out.print(a1[0].toString() + a1[1] + a1[2]);
//输出:345
代码片段 2:
Long [] a1 = {3L,4L,5L};
System.out.print(a1[0] + a1[1] + a1[2] + " ");
//输出:12
在片段 1 中,我们将“+”用作加法,因此我们有 3+4+5 = 12 然而,使用相同的逻辑,在片段 2 中,为什么我们没有 37 而不是 345
Java 计算表达式 从左到右
在你的情况下 System.out.print(a1[0] + a1[1] + a1[2] + " ")
它首先评估 ""
它是字符串然后它连接 ""
与 a1[2]
值等等......这就是为什么你得到那个输出 345
它不是加法,它是字符串的连接。
传递给 print
的表达式从左到右求值。如果 print
语句中的第一个表达式是字符串,则 +
运算符将被视为字符串连接。如果第一个表达式是数字,+
运算符将被视为加法。
顺便说一句,与您在问题中写的不同,由于字符串连接,第一个片段输出 345。