请检查此代码:
int result = 0;
result = result++;
System.out.println("Result 1 = " + result);
result++;
System.out.println("Result 2 = " + result);
Run Code Online (Sandbox Code Playgroud)
我期待的输出是:
Result 1 = 1
Result 2 = 2
Run Code Online (Sandbox Code Playgroud)
但我得到了输出:
Result 1 = 0
Result 2 = 1
Run Code Online (Sandbox Code Playgroud)
问题在于Line2.有人能解释一元算子吗?
在声明中i = i++:
这是一种保证行为.
i读取值是为了评估赋值的右侧.i然后递增.语句结束导致评估结果被分配给i.有两个分配,
i = i++;最后一个要确定结果.要执行的最后一个将始终是语句级别分配而不是增量器/减量器.编写代码的可怕方式,但至少你有一个确定性的结果.
http://forums.sun.com/thread.jspa?threadID=318496
| 归档时间: |
|
| 查看次数: |
2601 次 |
| 最近记录: |