初学java for-loop

时间:2015-05-03 22:42:45

标签: java loops for-loop

此代码:

for(int i=5; i<50; i=i*2){ 
} 

为什么循环4次而不是3次?我认为它做了5x2 = 10,然后10 x 2 = 20,然后是20 x 2 = 40,并且因为40 x 2大于50而停在那里。

4 个答案:

答案 0 :(得分:4)

打印数字:

for (int i = 5; i < 50; i = i * 2) {
    System.out.println(i);
}

输出:

5
10
20
40

所以你错过i == 5时的第一次迭代。

顺便说一下,i = i * 2可以写成i *= 2

答案 1 :(得分:2)

第一次执行使用指定的值i。它只在执行后迭代。所以它会在你列出的三次之前运行一次。

答案 2 :(得分:1)

在第一次迭代i 5

第二次循环时,i 10

第三次i 20

第三次迭代后i 40 i已通过 50 吗?没有。

第四次迭代i 80 之后,我们退出循环。

这使得 4 次迭代。

答案 3 :(得分:1)

嗯,开始:

if i < 50 --> do a iteration

i=5 - &gt;小于50 - &gt;第一次循环;

现在增加i - &gt; i = i*2 - &gt; i = 5*2 = 10

i=10 - &gt;小于50 - &gt;第二个循环;

现在增加i - &gt; i = i*2 - &gt; i = 10*2 = 20

i=20 - &GT;小于50 - &gt;第三个循环;

现在增加i - &gt; i = i*2 - &gt; i = 20*2 = 40

i=40 - &gt;小于50 - &gt;第四个循环;

现在增加i - &gt; i = i*2 - &gt; i = 40*2 = 80

i=80 - &gt;大于50 - &gt;停止