理解循环输出

时间:2016-02-07 20:25:56

标签: c++ for-loop

有人可以向我解释为什么输出如下?

为什么循环在(int i)之后第二次运行得到值9,这不小于5?

似乎即使(int i)大于5,它仍会增加另外3但身体不会再次运行。为什么呢?

#include <iostream>
using namespace std;

int i=0;

int main()
{
for(;i<5;i+=3){
i=i*i;
}
cout << i << endl;

//Output:  12(i)

2 个答案:

答案 0 :(得分:2)

它或多或少地以这种方式工作:

i = 0
i < 5 ? yes, keep on
i*i = 0
i+=3 => i ==3 now
i < 5 ? yes, keep on
i*i = 9
i+=3 => i is 12 now
i < 5 ? no, exit loop

你写了for(initialization; condition; excuteAtTheEndOfCycle)initialization仅在开始时执行一次,condition在每个周期之前进行评估excuteAtTheEndOfCyclei+=3,在您的情况下),最后执行在进一步评估condition

之前,每个周期

答案 1 :(得分:0)

它没有运行,因为你给出的循环条件小于5, 你想要什么,输出将是什么?