[英]Beginner java 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而停在那里。
打印数字:
for (int i = 5; i < 50; i = i * 2) {
System.out.println(i);
}
输出:
5
10
20
40
因此,当i == 5
时,您缺少第一次迭代。
顺便提及, i = i * 2
可以写为i *= 2
。
第一次执行使用i
的指定值。 它只在执行后迭代。 所以它会在你列出的三次之前运行一次。
在第一次迭代中, i
是5 。
它第二次循环, i
是10 。
第三次i
是20。
在第三次迭代后, i
40岁 。 i
过了50岁了吗? 没有。
在第四次迭代后, i
是80 ,然后我们退出循环。
这使得4次迭代。
好吧,开始:
if i < 50 --> do a iteration
i=5
- >小于50 - >第一次循环;
现在增量i
- > i = i*2
- > i = 5*2 = 10
i=10
- >小于50 - >第二次循环;
现在增量i
- > i = i*2
- > i = 10*2 = 20
i=20
- >小于50 - >第三循环;
现在增量i
- > i = i*2
- > i = 20*2 = 40
i=40
- >小于50 - >第四循环;
现在增量i
- > i = i*2
- > i = 40*2 = 80
i=80
- >大于50 - >停止
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.