我在一本编码书中看到了这段代码,结果是3、5、7、9.有人能向我解释一下为什么输出中没有显示数字1吗



这是我在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

相关内容

最新更新