在控制結(jié)構(gòu)里簡(jiǎn)單的提到過(guò)循環(huán)結(jié)構(gòu),下面來(lái)細(xì)講一下什么是循環(huán)結(jié)構(gòu)。
循環(huán)結(jié)構(gòu)就是重復(fù)的執(zhí)行一條或若干語(yǔ)句,在日常生活中我們可以看到很多這樣的例子,像修鐵路、蓋房子這樣的工程,大多來(lái)說(shuō)都是不達(dá)到目標(biāo)之前都在重復(fù)的去執(zhí)行相同的操作,也就是在循環(huán)的坐同一件事情。
對(duì)于循環(huán)結(jié)構(gòu),主要分為兩種類型:
1)條件控制的循環(huán)
條件控制的循環(huán)是指采用一個(gè)表達(dá)式(可真可假)來(lái)控制循環(huán)的次數(shù),我們用while語(yǔ)句來(lái)描述條件能控制的循環(huán)。
2)計(jì)數(shù)控制的循環(huán)
計(jì)數(shù)控制的循環(huán)是根絕指定的次數(shù)來(lái)進(jìn)行循環(huán),我們用for語(yǔ)句來(lái)編寫(xiě)計(jì)算控制的循環(huán)。
1. while語(yǔ)句
while語(yǔ)句的概念:當(dāng)滿足條件時(shí)進(jìn)入循環(huán),進(jìn)入循環(huán)后,當(dāng)條件不滿足時(shí),跳出循環(huán)。while語(yǔ)句的一般表達(dá)式為:
while True: 循環(huán)體
邏輯圖如下圖:
它的工作原理是判斷條件為真時(shí)的時(shí)候就進(jìn)入循環(huán)體循環(huán)一次,直到判斷條件不成立,為Flase時(shí)退出循環(huán)。
下面我們?nèi)匀皇峭ㄟ^(guò)實(shí)例來(lái)進(jìn)行進(jìn)一步學(xué)習(xí)。
小明的爸爸對(duì)他管教的很嚴(yán)格,他爸爸給他規(guī)定,每天晚上放學(xué)回到家中都需要寫(xiě)五道編程題,寫(xiě)完了才可以玩手機(jī)。
代碼如下:
count = 0 while count < 5: count += 1 if count <5: print('現(xiàn)在是第',count,'道,需要繼續(xù)答題') print('小明已經(jīng)完成',count,'道題目,可以玩手機(jī)了')
輸出結(jié)果:
現(xiàn)在是第 1 道,需要繼續(xù)答題 現(xiàn)在是第 2 道,需要繼續(xù)答題 現(xiàn)在是第 3 道,需要繼續(xù)答題 現(xiàn)在是第 4 道,需要繼續(xù)答題 小明已經(jīng)完成 5 道題目,可以玩手機(jī)了
2. 無(wú)限循環(huán)(死循環(huán))
對(duì)于大多數(shù)循環(huán)來(lái)說(shuō),循環(huán)體內(nèi)一定要有結(jié)束循環(huán)的操作,意思就是循環(huán)內(nèi)部存在讓表達(dá)式的判斷為假的語(yǔ)句,如果缺少了這樣的語(yǔ)句,那么循環(huán)沒(méi)有停下來(lái)的方法,那么就會(huì)形成無(wú)限循環(huán),也就是死循環(huán)。
這一點(diǎn)我們用比喻來(lái)形容一下,假如有一輛汽車,它擁有無(wú)限的油量和電量,但是我們沒(méi)有給他設(shè)置剎車和關(guān)閉功能,那么這輛車一旦啟動(dòng),就會(huì)一直前行,直到產(chǎn)生一定后果,否則不會(huì)停下來(lái)。
舉個(gè)例子來(lái)看一下:
number = 10 while number < 100: print(number)
對(duì)于上面這個(gè)語(yǔ)句,當(dāng)你執(zhí)行了之后就會(huì)發(fā)現(xiàn),程序在一直執(zhí)行,因?yàn)闆](méi)有條件能夠使得number大于或等于100,因此形成了無(wú)限循環(huán)。因此在寫(xiě)循環(huán)語(yǔ)句的時(shí)候一定要注意控制條件。
關(guān)于while循環(huán)就講到這里,下一節(jié)我們來(lái)學(xué)習(xí)for循環(huán)。
3. 推薦題解
1389 | 程序員的表白 |
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)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程