什么是输出
1).
int j=0;
for (int i=0; i<100; i++) j=j++;
System.out.println(j);
Run Code Online (Sandbox Code Playgroud)
我以为j=j++;会等于
int j2 = j;
j = j+1;
Run Code Online (Sandbox Code Playgroud)
所以我期待输出将是99.但是当我编译eclipse时输出为0.
2).我无法理解背后的逻辑是什么
((int)(char)(byte) -1)
Run Code Online (Sandbox Code Playgroud)
在eclipse上运行它时输出为65535.
j=j++;
Run Code Online (Sandbox Code Playgroud)
在功能上等于
int xxx = j;
j++;
j = xxx;
Run Code Online (Sandbox Code Playgroud)
所以价值j保持不变.(因为首先评估右侧,包括增量,然后将结果分配给j)
至于((int)(char)(byte) -1),char的大小为16位且无符号,因此位模式-1为65535.
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |