溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解c++ For循環(huán)執(zhí)行順序流程

發(fā)布時(shí)間:2021-10-08 09:36:01 來源:億速云 閱讀:171 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“如何理解c++ For循環(huán)執(zhí)行順序流程”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何理解c++ For循環(huán)執(zhí)行順序流程”吧!

for 循環(huán)允許您編寫一個(gè)執(zhí)行特定次數(shù)的循環(huán)的重復(fù)控制結(jié)構(gòu)。

語法

C++ 中 for 循環(huán)的語法:

for ( init; condition; increment )
{
   statement(s);
}

下面是 for 循環(huán)的控制流:

  1. init 會首先被執(zhí)行,且只會執(zhí)行一次。這一步允許您聲明并初始化任何循環(huán)控制變量。您也可以不在這里寫任何語句,只要有一個(gè)分號出現(xiàn)即可。

  2. 接下來,會判斷 condition。如果為真,則執(zhí)行循環(huán)主體。如果為假,則不執(zhí)行循環(huán)主體,且控制流會跳轉(zhuǎn)到緊接著 for 循環(huán)的下一條語句。

  3. 在執(zhí)行完 for 循環(huán)主體后,控制流會跳回上面的 increment 語句。該語句允許您更新循環(huán)控制變量。該語句可以留空,只要在條件后有一個(gè)分號出現(xiàn)即可。

  4. 條件再次被判斷。如果為真,則執(zhí)行循環(huán),這個(gè)過程會不斷重復(fù)(循環(huán)主體,然后增加步值,再然后重新判斷條件)。在條件變?yōu)榧贂r(shí),for 循環(huán)終止。

流程圖

如何理解c++ For循環(huán)執(zhí)行順序流程

實(shí)例分析一

有以下for循環(huán)執(zhí)行代碼

如何理解c++ For循環(huán)執(zhí)行順序流程

較為基礎(chǔ),所以畫圖給大家講解一下for循環(huán)執(zhí)行步驟

1.執(zhí)行for循環(huán)體里的第一個(gè)參數(shù),也就是定義一個(gè)int整形變量,其變量名為i,并初始化為0

如何理解c++ For循環(huán)執(zhí)行順序流程

2.執(zhí)行完第一個(gè)參數(shù)里的代碼后,會執(zhí)行第二個(gè)參數(shù),判斷i是否小于99

如何理解c++ For循環(huán)執(zhí)行順序流程

3.當(dāng)?shù)诙€(gè)表達(dá)式為True時(shí)會去執(zhí)行循環(huán)體里的代碼,也就是當(dāng)i不等于99的時(shí)候

如何理解c++ For循環(huán)執(zhí)行順序流程

4.執(zhí)行完循環(huán)體里的代碼后,就會去執(zhí)行for循環(huán)的第三個(gè)參數(shù)也就是++i

如何理解c++ For循環(huán)執(zhí)行順序流程

當(dāng)以上流程執(zhí)行完成之后,進(jìn)入非第一次執(zhí)行循環(huán)時(shí)就不會執(zhí)行for循環(huán)第一個(gè)參數(shù)了

如何理解c++ For循環(huán)執(zhí)行順序流程

而是直接去執(zhí)行第二個(gè)參數(shù)里的判斷表達(dá)式

如何理解c++ For循環(huán)執(zhí)行順序流程

然后在去執(zhí)行循環(huán)體里的代碼

如何理解c++ For循環(huán)執(zhí)行順序流程

然后在執(zhí)行for循環(huán)的第三個(gè)參數(shù)

如何理解c++ For循環(huán)執(zhí)行順序流程

直到參數(shù)二:i>99的時(shí)候循環(huán)才會結(jié)束

i=98是最后一次循環(huán),(i++/++i在for循環(huán)沒有區(qū)別,不知道為啥,反正結(jié)構(gòu)一樣),這是i=99會執(zhí)行第二步,不滿足條件,跳出循環(huán)體,如果在循環(huán)體內(nèi)打印i,i的最終結(jié)果為98(從0開始一共執(zhí)行了99次,從1開始一共執(zhí)行了98次,),如果在循環(huán)體外打印i,i的最終結(jié)果為99,大概這樣

for循環(huán)的執(zhí)行順序(實(shí)例詳解)

實(shí)例代碼

#include <stdio.h>
#include <srdlib.h>
int main(void)
{
char c;
for(c=getchar();getchar()!='#';c=getchar())
putchar(c);
}

運(yùn)行結(jié)果如下:

這是怎么執(zhí)行的呢?
首先需要明確的一點(diǎn)是,for循環(huán)語句的執(zhí)行順序
先舉一個(gè)簡單的例子,

for(int i=0;i<10;i++){
//循環(huán)體
}

執(zhí)行數(shù)序是:
i=0 初始化初值
i<10 進(jìn)行判斷,如果條件為真,則繼續(xù)執(zhí)行
執(zhí)行循環(huán)體代碼
i++ 變量i自增
回到第2步,一直循環(huán)下去,直到第2步為假, 退出循環(huán).

總結(jié)一下:

for(條件①;條件②;條件③){
循環(huán)體④
}

執(zhí)行順序如下:
①②④③ ②④③ ②④③... ...直到結(jié)束

我們再來分析一下開頭的案例

控制臺輸入:12345#
首先執(zhí)行第一個(gè)getchar(),得到c=1;
然后執(zhí)行第二個(gè)getchar(),得到c=2,同時(shí)判斷 2 != '#' ;
然后執(zhí)行循環(huán)體輸出1;
然后執(zhí)行第三個(gè)getchar(),得到c=3;
(此時(shí)一輪循環(huán)結(jié)束,回到for循環(huán)的條件②執(zhí)行第二輪循環(huán))
執(zhí)行第二個(gè)getchar(),得到c=4,同時(shí)判斷 4!= '#' ;
然后執(zhí)行循環(huán)體輸出3;
然后執(zhí)行第三個(gè)getchar(),得到c=5;
(第二輪循環(huán)結(jié)束,再次回到for循環(huán)的條件②執(zhí)行第三輪循環(huán))
執(zhí)行第二個(gè)getchar(),得到c=#,判斷 ‘#'= '#' ,循環(huán)結(jié)束;

感謝各位的閱讀,以上就是“如何理解c++ For循環(huán)執(zhí)行順序流程”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何理解c++ For循環(huán)執(zhí)行順序流程這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI