连接字符串和数字Java

为什么在这些情况下输出不同?

int x=20,y=10;

System.out.println("printing: " + x + y); ==> 印刷:2010年

System.out.println("printing: " + x * y); ==> 打印:200

为什么第一个输出不是30?它与运算符优先级有关吗?就像首先将“ printing”和x连接在一起,然后将结果字符串和y连接在一起?我对么?

回答:

它的BODMAS规则

B  - Bracket 

O - Power

DM - Division and Multiplication

AS - Addition and Substraction

Left to Right*

现在

System.out.println("printing: " + x + y);

"printing: " :是字符串”

"+" :是Java中唯一将Number连接到String的重载运算符。因为我们这里有2个“ +”运算符,并且x + y落在"printing:"

+已经发生的位置之后,它也将x和y视为字符串。

因此输出为

System.out.println("printing: " + x * y);

在这里

"*":优先级高于 +

因此,它的x*yprinting: +

所以输出是

System.out.println("printing: "+ (x+y));

Bracket是 到Addition

以上是 连接字符串和数字Java 的全部内容, 来源链接: utcz.com/qa/416507.html

回到顶部