Java 我不明白这个for循环是如何工作的 for(int i=0;i2 i->1->4 直到 i->7->10

Java 我不明白这个for循环是如何工作的 for(int i=0;i2 i->1->4 直到 i->7->10,java,for-loop,increment,Java,For Loop,Increment,为什么初始值-1以及它是如何增加该值的?因为您有--i,如果您有i--第一个输出将是0 --我将从答案中删除一个,因为我将在答案中添加一个 所以,无论循环构造的是什么输出,都会从最终输出中减去1,因为--i 如果你有i-,它仍然会从最终答案中扣除一个,但在循环结束之前,它会扣除1。在你显示的println中-,i-递减i的值。从循环中的i=0开始 当你减少0,你得到-1 for循环本身在每次迭代中将i+=3添加到i中。--i意味着在使用它之前从i中减去1。如果你把i--放进去,那就意味着取i的值

为什么初始值-1以及它是如何增加该值的?

因为您有--i,如果您有i--第一个输出将是0

--我将从答案中删除一个,因为我将在答案中添加一个

所以,无论循环构造的是什么输出,都会从最终输出中减去1,因为--i


如果你有i-,它仍然会从最终答案中扣除一个,但在循环结束之前,它会扣除1。

在你显示的println中-,i-递减i的值。从循环中的i=0开始

当你减少0,你得到-1

for循环本身在每次迭代中将i+=3添加到i中。

--i
意味着在使用它之前从
i
中减去1。如果你把
i--
放进去,那就意味着取
i
的值,然后用它减去1

在每个循环中,您要加3,但在使用该值之前要减去1。换句话说,你实际上只是在加2。您正在使用的
i
的值是:
-1,1,3,5,7
,这有点混乱

编辑:只是为了添加,它确实会在该点停止,因为下一次通过循环时,您将有
7+3
,其中
=10
10!<20-10
所以它不能进行迭代。

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


是后减量运算符。首先访问i中的值,然后递减值,因此值将为0

您的循环变量在for语句和主体中都被修改。首先计算表达式
--i
,得到-1。然后for语句通过添加3对其进行修改。下次通过循环时,它应该在打印前再减去1,以此类推。

--i首先递减i的值,然后-1作为第一个值打印。在每个循环结束时,i增加3

然后我以
i->-1->2
i->1->4
直到

i->7->10

在for循环中,首先有一个赋值-在本例中
i=0-这是i的起始值
下一部分是条件-此处
i<20-i
-在进入循环之前,将在循环的每个步骤中检查该条件。
第三部分的条件是-
i+=3
,这将在每次迭代中将i增加3

所以。。 现在你有了
i=0
开始,
i<20-i
true
,所以它进入了循环, 执行语句
System.out.println(-i)
这是预减量运算符,因此它将i减量1,然后将其打印。

只要条件
i<20-i
true

--i为预减量运算符,则重复此操作。它首先将i中的值减小为1,然后将其打印,

因此,如果i的值当前为0,则该值将减少1,这意味着
i==i-1
然后打印它
i=-1

否,问题是为什么它本身是-1?当我手工操作时,我无法获取值。因为在第一个循环中i=0。当它试图输出时,你会说--i,所以答案是0-1=-1。直到循环的第二次循环,它才会增加+=3
for (int i = 0; i < 20-i; i+=3) {

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