源代码:
public class EnumTest {
public static void main(String[] args) {
int x = 100;
int y = 200;
System.out.println("x+y=" + y + x + y);
System.out.println(x + y + "=x+y");
}
}
程序输出:
x+y=200100200
300=x+y
未曾见过的代码.
原因:
System.out.println("x+y=" + y + x + y);
在这条语句中,字符串 "x+y=" 会被作为字符串,后面的 + 运算符会执行字符串连接。
按照运算符优先级,从左到右的顺序进行字符串连接:
首先 "x+y=" + y 的结果为 "x+y=200"
然后再连接 + x,结果为 "x+y=200100"
最后连接 + y,结果为 "x+y=200100200"
所以,输出为:
x+y=200100200
System.out.println(x + y + "=x+y");
在这一条语句中,x + y 会首先被计算,因为运算符 + 具有更高的优先级(数值加法优先于字符串连接)。
因此,x + y 的结果是 100 + 200,即 300。
接下来,这个结果与字符串 "=x+y" 连接:
300 + "=x+y" 的结果为 "300=x+y"。
所以,输出为:
300=x+y