增量运算符功能。它是如何工作的?

时间:2013-12-02 05:28:31

标签: java

有人可以告诉我为什么这段代码导致1?

我认为应该发生的是myInt被修改为10,结果为1,然后myInt增加并且应该变为2.但是,似乎增量被丢弃。

int myInt = 21;

myInt = myInt++ % 10;

System.out.println( "myInt: " + myInt );

3 个答案:

答案 0 :(得分:2)

Google了解帖子增量和预增量之间的差异。

这适用于您的案例

int myInt = 21;

myInt = ++myInt % 10;

System.out.println( "myInt: " + myInt );

答案 1 :(得分:0)

而不是理论上,我认为通过例子解释会很好。

有两种类型的增量

a ++(增量后)

++ a(预增量)

If a = 10;

i=++a + ++a + a++; =>
i=11 + 12 + 12; (i=35)

i=a++ + ++a + ++a; =>
i=10 + 11 + 12; (i=33)

答案 2 :(得分:0)

我认为运算符“variable ++”是一个后增量运算符。 结果,在递增之前返回原始值。

所以在你的情况下:

  1. myInt ++返回21
  2. myInt ++是进程,myInt现在等于22
  3. 21%10被处理并分配给myInt,myInt等于1