有人可以向我解释为什么输出如下?
为什么循环在(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)
答案 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
在每个周期之前进行评估excuteAtTheEndOfCycle
(i+=3
,在您的情况下),最后执行在进一步评估condition
答案 1 :(得分:0)
它没有运行,因为你给出的循环条件小于5, 你想要什么,输出将是什么?