为什么这些情况下的输出不同?
int x=20,y=10;
System.out.println("printing: " + x + y);
==>印刷:2010年
System.out.println("printing: " + x * y);
==>印刷:200
为什么第一个输出不是30?与运算符优先级有关吗?就像第一个“打印”和 x 连接起来,然后这个结果字符串和 y 连接起来?我对么?
Its the BODMAS
Rule
我从高到低显示了下面的优先顺序:
B - Bracket
O - Power
DM - Division and Multiplication
AS - Addition and Substraction
这作品来自 Left to Right
如果运算符具有相同的优先级
Now
System.out.println("printing: " + x + y);
"printing: "
:是一个字符串”
"+"
: 是 Java 中唯一将数字连接到字符串的重载运算符。
因为我们这里有 2 个“+”运算符,并且 x+y 落在"printing:" +
正如已经发生的那样,它也将 x 和 y 视为字符串。
所以输出是2010.
System.out.println("printing: " + x * y);
这里的
"*"
: 优先级高于+
So its x*y
first then printing: +
所以输出是200
如果您希望在第一种情况下输出 200,请这样做:
System.out.println("printing: "+ (x+y));
The 的优先顺序 Bracket
is higher to Addition
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)