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

syn*_*oll -2 java for-loop increment

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

     System.out.println(--i);
}
Run Code Online (Sandbox Code Playgroud)

为什么初始值为-1,它是如何递增该值的?

Tom*_*ler 5

--i表示i在使用之前减去1 .如果你把i--它放在那里它意味着取值,i然后使用后减去1 .

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

编辑:只是添加,它确实停止在那一点,因为下一次通过循环你有7+3哪些=10,10 !< 20-10所以它不能做那个迭代.