int i = 0;
int k = Integer.parseInt("12");
int j = k;
System.out.println(i+1 + " " + j+1);
Run Code Online (Sandbox Code Playgroud)
奇怪的是收到的输出是
1 121
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这个基本的区别.请帮我.
Jig*_*shi 11
使用括号如下
System.out.println((i+1) + " " + (j+1));
Run Code Online (Sandbox Code Playgroud)
来自文档
+运算符在语法上是左关联的,无论后来通过类型分析确定它是否表示字符串连接或添加.在某些情况下,需要注意获得所需的结果.例如,表达式:
a + b + c始终被视为含义:(a + b)+ c
将此扩展到您的方案
i+1 + " " + j+1
Run Code Online (Sandbox Code Playgroud)
它成为了
(((i + 1) + " ") + j)+1
Run Code Online (Sandbox Code Playgroud)
因为i
是一个int,所以(i + 1) = 1
简单的加法
" "
是String
因为((i + 1) + " ")
= 1
WITH SPACE(字符串连接)
类似地,当添加j
和1
添加时,将其添加到String
因此String
连接中,这证明了您获得的输出是正确的.
看到
这是因为" "
.
每当一个String出现时,java都不会在此之后进行任何计算,只需将其作为字符串附加.
所以在你的情况下,i+1
计算到1
,但" " + j+1
在其中有字符串.所以,它只是附加在一起形成 121
归档时间: |
|
查看次数: |
1103 次 |
最近记录: |