这是我在VS code中尝试的代码:
int i = 1;
while (i < 10)
if((i++) % 2 == 0)
System.out.println(i);
结果是:3.5.7.9
在循环i == 1
的第一次迭代时。
i++
将i
递增到2,但返回1。
因此,if((i++) % 2 == 0)
评估为false
(因为1不是偶数(,并且不打印任何内容。
在下一次迭代中,i++
将i
递增到3,但返回2。
因此,if((i++) % 2 == 0)
评估为true
(因为2是偶数(,并且打印3
。
即使在循环的第一次迭代中打印了i
,也不会打印1
,因为i++
在println
语句之前将i
增加到2
。