有人可以向我解釋爲什麼輸出如下?瞭解循環輸出
爲什麼循環第二次運行後(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)
有人可以向我解釋爲什麼輸出如下?瞭解循環輸出
爲什麼循環第二次運行後(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)
它的工作原理是這樣,或多或少:
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
謝謝!我會很快將它標記爲正確的。在此之前,我不知道只有在添加之後才檢查了這個情況。 – WhyteSeal
第二次是*當它變成9時。 –
每當它變成9時爲什麼身體不會跑?(剛剛得到9 + 3?) – WhyteSeal