= Java中的运算符

前端之家收集整理的这篇文章主要介绍了= Java中的运算符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑这个代码
long val = 0;
for(int i = 0; i < 2; val++)
    val =+ ++i;

System.out.println(val);

为什么val = 3到底是什么

我会这样计算:

val     i
0       0   i < 2 = true;
0       0   ++i;
0       1   val =+ 1;
1       1   (end of for loop) val++;
2       1   i < 2 = true;
2       1   ++i;
2       2   val =+ 2;
4       2   (end of for loop) val++;
5       2   i < 2 = false;
Output: 5

但是它是3.我不明白为什么增加val = i没有完成第二次当我= 1并获得预增加到i = 2.

解决方法

我们首先关注不寻常的行:
val =+ ++i;

这里的运算符是=(赋值),(一元加)和(预增量).没有=运算符. Java将其解释为两个运算符:=和.加上适当的空格更清楚:

val = + ++i;

现在分析一下处理:

第一次迭代:val和i是0.我被递增到1,这是i的结果.一元不做任何事情,1被分配给val.然后迭代语句val发生,现在val为2.我仍然为1,因此满足for循环条件并发生第二次迭代.

第二次迭代:我再次递增到2.一元不做任何事情,val被分配2.迭代语句val再次出现,现在是3.但是现在是2,不小于2,所以循环终止,并打印val-3-.

猜你在找的Java相关文章