对于第一个代码,
int i = 1;
while (i < 10)
if ((i++) % 2 == 0)
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
系统输出:3 5 7 9
对于第二个代码,
int i = 1;
while (i < 10)
if ((i=i+1) % 2 == 0)
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
系统输出:2 4 6 8 10
为什么两个输出不同但公式相同?
如果使用i++,旧值将用于计算,之后值i将增加1.
因为i = i + 1,情况恰恰相反:它将首先递增,然后才会进行计算.
如果您希望第二种情况的行为与第一种情况的简洁,请使用++i:在这种情况下,i首先在计算之前递增.
有关更多详细信息和更多技术说明,请查看Assignment,Arithmetic和Unary Operators的文档!
| 归档时间: |
|
| 查看次数: |
11290 次 |
| 最近记录: |