难以理解此 for 循环中的增量
trouble understanding the increment in this for loop
我自己编写了 for 循环,以为我知道答案,哈哈,显然我不知道。我试图更好地理解 for 循环和 while 循环等。所以我正在练习。
#include <iostream>
using namespace std;
int main()
{
int I;
for ( I = 1 ; I<11 ; I += 3)
cout << ++I << "," << flush;
cout << endl;
}
现在我认为输出是 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。
谢谢。
想到
for ( I = 1 ; I<11 ; I += 3)
cout << ++I << "," << flush;
作为
for ( I = 1 ; I<11 ; )
{
cout << ++I << "," << flush;
I += 3;
}
++I
是一个预增量,所以从 I = 1
开始意味着你得到一个 cout << 2
然后 I += 3
这给你 5
,然后进行下一次迭代。
(请注意,5
预先递增到 6
,然后在下一次迭代中打印)
我觉得这样看比较清楚。您的 for 循环相当于:
{
int I = 1;
while (I < 11)
{
++I;
out << I << "," << flush;
I += 3;
}
}
注意预先增加returns当前值I
(增加后的值)。
++I
是一个预自增运算符,所以它首先执行自增,然后returns值,所以你的程序是这样运行的:
1) I = 1,预自增,所以I=2,打印I => 2,然后I+=3 = 5
2) I = 5,预自增,所以I=6,打印I => 6,然后I+=3 = 9
3) I = 9,预自增,所以I=10,打印I => 10,然后I+=3 = 13
4) I = 13, 终止。
我自己编写了 for 循环,以为我知道答案,哈哈,显然我不知道。我试图更好地理解 for 循环和 while 循环等。所以我正在练习。
#include <iostream>
using namespace std;
int main()
{
int I;
for ( I = 1 ; I<11 ; I += 3)
cout << ++I << "," << flush;
cout << endl;
}
现在我认为输出是 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。
谢谢。
想到
for ( I = 1 ; I<11 ; I += 3)
cout << ++I << "," << flush;
作为
for ( I = 1 ; I<11 ; )
{
cout << ++I << "," << flush;
I += 3;
}
++I
是一个预增量,所以从 I = 1
开始意味着你得到一个 cout << 2
然后 I += 3
这给你 5
,然后进行下一次迭代。
(请注意,5
预先递增到 6
,然后在下一次迭代中打印)
我觉得这样看比较清楚。您的 for 循环相当于:
{
int I = 1;
while (I < 11)
{
++I;
out << I << "," << flush;
I += 3;
}
}
注意预先增加returns当前值I
(增加后的值)。
++I
是一个预自增运算符,所以它首先执行自增,然后returns值,所以你的程序是这样运行的:
1) I = 1,预自增,所以I=2,打印I => 2,然后I+=3 = 5
2) I = 5,预自增,所以I=6,打印I => 6,然后I+=3 = 9
3) I = 9,预自增,所以I=10,打印I => 10,然后I+=3 = 13
4) I = 13, 终止。