无法理解这个for循环中的增量

Sor*_*yEh 0 c++ for-loop

我做了我自己的循环思考我知道答案大声笑我不知道.我试图更好地理解循环,而循环等等所以我正在练习.

#include <iostream>

using namespace std;

int main()
{
    int I;
    for ( I = 1 ; I<11 ; I += 3)
        cout << ++I << "," << flush;
    cout << endl;    
}
Run Code Online (Sandbox Code Playgroud)

现在我认为输出将是1递增到2然后加到3所以I = 1, ++I,2+3 = 5 然后I= 5, ++I,6+3 = 9

因此,在终止之前,输出将是5,9.

但是当我在Visual Studio 2010中编译它时,我得到的输出是2,6,10

我认为它首先递增到2,然后再次递增到3然后加到3,然后6递增到7,然后加到3得到10.

但这对我来说没有意义,因为为什么2不会被添加到3中.

谢谢.

Luc*_*ore 12

考虑到

for ( I = 1 ; I<11 ; I += 3)
   cout << ++I << "," << flush;
Run Code Online (Sandbox Code Playgroud)

for ( I = 1 ; I<11 ; )
{
    cout << ++I << "," << flush;
    I += 3;
}
Run Code Online (Sandbox Code Playgroud)

++I是一个预增量,所以从一开始就I = 1意味着你得到一个cout << 2然后I += 3它给你5,然后到下一个迭代.

(注意,在下一次迭代期间5会预先递增6,然后打印)