我不明白这个for循环是如何工作的

时间:2011-11-17 08:44:20

标签: java for-loop increment

for (int i = 0; i < 20-i; i+=3) {

     System.out.println(--i);
}

为什么初始值 -1 以及如何递增该值?

8 个答案:

答案 0 :(得分:5)

--i表示在使用之前从i中减去1。如果您放置i--,则表示取i的值,然后在之后减去1

在每个循环中添加3,但是在使用该值之前减去1。换句话说,你实际上只是真正添加2.你使用的i的值是:-1, 1, 3, 5, 7这有点令人困惑!

编辑:只是要添加,它会在此时停止,因为下次循环时你会7+3 =10和{{1}所以它不能做那个迭代。

答案 1 :(得分:1)

因为你有 - i,如果你有i--第一个输出就是0。

- 我将从答案中取一个,因为++我会在答案中添加一个。

所以,无论你的循环构造什么输出,都会因为--i而从最终输出中扣除1。

如果你有i--它仍然会从最终答案中扣除一个,但是直到循环结束才能扣除1。

答案 2 :(得分:1)

在println中你显示--i。 - 减少i的值。首先在循环中开始i = 0.

当你递减0时,你得到-1。

for循环本身在每次迭代时加上i + i = = 3。

答案 3 :(得分:1)

- 我是预减法运算符。首先递减i中的值然后访问它以进行打印,因此值为-1

i--是后递减运算符。 i中的第一个访问值然后递减值,因此值将为0

答案 4 :(得分:1)

你的循环变量在for语句和body中都被修改了。首先评估表达式--i,得到-1。然后for语句通过添加3来修改它。下一次循环时,它应该在打印之前再带走1个等等。

答案 5 :(得分:1)

- 我首先递减i的值,并将-1打印为第一个值。在每个周期结束时,i增加3。

然后我进入每个周期作为
我 - &gt; -1 - &gt; 2
我 - &gt; 1 - &gt; 4
直到
我 - &gt; 7 - &gt; 10

答案 6 :(得分:0)

在for循环中,首先你有一个赋值 - 在这种情况下是i = 0; - 这是i的起始值。
下一部分是条件 - 这里i < 20 - i - 在进入循环之前,将在循环的每一步检查它 第三部分具有条件 - i += 3这将在每次迭代中将i递增3。

所以.. 现在您开始i = 0i < 20 -itrue,因此它进入循环, 并执行语句System.out.println(--i);
这是预减量运算符,所以它递减1,然后打印出来。

只要条件i < 20 -itrue,就会重复此操作。

答案 7 :(得分:0)

- 我是预递减运算符。首先将i中的值减1,然后打印,
因此,如果i的值当前为0,则第1个值减1,表示i==i-1然后将其打印i=-1