有人可以告诉我为什么这段代码导致1?
我认为应该发生的是myInt被修改为10,结果为1,然后myInt增加并且应该变为2.但是,似乎增量被丢弃。
int myInt = 21;
myInt = myInt++ % 10;
System.out.println( "myInt: " + myInt );
答案 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 ++”是一个后增量运算符。 结果,在递增之前返回原始值。
所以在你的情况下: