在學(xué)習(xí)控制結(jié)構(gòu)之前我們通過(guò)一個(gè)故事來(lái)簡(jiǎn)單的描述一下控制結(jié)構(gòu),先看一下這幅圖。
小明每天放學(xué)回家必須要經(jīng)過(guò)道路1,道路1上有十條馬路,小明需要先順序的走到分叉口,在面對(duì)道路2和道路3的時(shí)候他需要作出選擇,當(dāng)他選擇道路3的時(shí)候是無(wú)法回到家的,當(dāng)他選擇道路2之后會(huì)走到操場(chǎng),小明的爸爸規(guī)定小明在回家之前要圍著操場(chǎng)跑3圈,因此當(dāng)他圍著操場(chǎng)循環(huán)跑了3圈之后,滿足了要求才可以回到家中。
我們?cè)诰帉?xiě)程序解決問(wèn)題的時(shí)候也通常會(huì)使用這三種結(jié)構(gòu),它們分別是順序結(jié)構(gòu)、選擇結(jié)果、循環(huán)結(jié)構(gòu)。
下面我們來(lái)通過(guò)執(zhí)行流程圖來(lái)認(rèn)識(shí)一下這三種結(jié)構(gòu)。
順序結(jié)構(gòu)就是順序的依次向著一個(gè)方向一致執(zhí)行,選擇結(jié)構(gòu)是在分叉路口的時(shí)候根據(jù)情況進(jìn)行選擇,而循環(huán)結(jié)構(gòu)是指不滿足條件就循環(huán)去執(zhí)行,直到滿足條件為止。
對(duì)于這三種結(jié)構(gòu)拿比喻句來(lái)形容一下:
1. 順序結(jié)構(gòu)就像火車前行一樣,不到分叉路口是不進(jìn)行拐彎,一直前行。
2. 選擇結(jié)構(gòu)就可就像我們?nèi)ベI東西的時(shí)候,如果我們的錢(qián)足夠多可以買貴的,錢(qián)不足就只能購(gòu)買中等的或者便宜的。
3. 循環(huán)結(jié)構(gòu)就像上學(xué)一樣,不到休息日就需要每天都按時(shí)去上課,直到休息日才可以不去上課。
4. 當(dāng)然還存在嵌套結(jié)構(gòu),就像我們?nèi)ベI東西的時(shí)候,即使錢(qián)足夠多也可以去再加一些限制,例如品牌,機(jī)型大小等。
5. 對(duì)于上學(xué)來(lái)說(shuō)也可以在其中嵌套選擇結(jié)構(gòu),當(dāng)生病的時(shí)候可以請(qǐng)假休息不去上課。
因此程序結(jié)構(gòu)可以通過(guò)三種基礎(chǔ)結(jié)構(gòu)而嵌套解決很多問(wèn)題。
1. 順序結(jié)構(gòu)
順序結(jié)構(gòu)是三者里比較容易理解的,它按照編寫(xiě)完畢的語(yǔ)句的順序依次執(zhí)行。
一般來(lái)說(shuō)就是我們所能看到的從上到下依次執(zhí)行。
舉個(gè)例子:
print(' ','登高',' ','李白') print('風(fēng)急天高猿嘯哀,渚清沙白鳥(niǎo)飛回。') print('無(wú)邊落木蕭蕭下,不盡長(zhǎng)江滾滾來(lái)。') print('萬(wàn)里悲秋常作客,百年多病獨(dú)登臺(tái)。') print('艱難苦恨繁霜鬢,潦倒新停濁酒杯。')
輸出結(jié)果為:
登高 李白 風(fēng)急天高猿嘯哀,渚清沙白鳥(niǎo)飛回。 無(wú)邊落木蕭蕭下,不盡長(zhǎng)江滾滾來(lái)。 萬(wàn)里悲秋常作客,百年多病獨(dú)登臺(tái)。 艱難苦恨繁霜鬢,潦倒新停濁酒杯。
2. 總結(jié)
本小節(jié)主要介紹了控制結(jié)構(gòu)的三個(gè)類型,大家之后在寫(xiě)程序的時(shí)候離不開(kāi)這三種類型,要在理解三種基礎(chǔ)類型的同時(shí)去思考嵌套類型的原理,在生活中的各種問(wèn)題都可以用編程思想去思考一下。最后簡(jiǎn)單的介紹了一下順序結(jié)構(gòu),在語(yǔ)句未遇到循環(huán)或選擇的時(shí)候都是以順序的方式向下運(yùn)行,下一節(jié)我們就來(lái)介紹一下選擇語(yǔ)句。
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程
只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程