for (int i = 0; i < 20-i; i+=3) {
System.out.println(--i);
}
为什么初始值 -1 以及如何递增该值?
答案 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 = 0
,i < 20 -i
为true
,因此它进入循环,
并执行语句System.out.println(--i);
这是预减量运算符,所以它递减1,然后打印出来。
只要条件i < 20 -i
为true
,就会重复此操作。
答案 7 :(得分:0)
- 我是预递减运算符。首先将i中的值减1,然后打印,
因此,如果i的值当前为0,则第1个值减1,表示i==i-1
然后将其打印i=-1