官术网_书友最值得收藏!

6.6 循環(huán)結(jié)構(gòu)程序舉例

循環(huán)語句主要就是在滿足條件的情況下反復(fù)執(zhí)行某一個(gè)操作。根據(jù)循環(huán)執(zhí)行次數(shù)的確定性,循環(huán)可以分為確定次數(shù)循環(huán)和不確定次數(shù)循環(huán)。確定次數(shù)循環(huán)指循環(huán)體對循環(huán)次數(shù)有明確的定義,循環(huán)次數(shù)限制采用遍歷結(jié)構(gòu)中元素個(gè)數(shù)來體現(xiàn),也稱有限循環(huán),在Python中稱之為遍歷循環(huán)(for語句);不確定次數(shù)循環(huán)被稱為無限循環(huán),在Python中用while語句實(shí)現(xiàn)。

6.6.1 while循環(huán)結(jié)構(gòu)

while循環(huán)判斷比較簡單,當(dāng)條件判斷為True時(shí),循環(huán)體就會(huì)去重復(fù)執(zhí)行語句塊中的語句;當(dāng)條件判斷為False時(shí),則終止循環(huán)語句的執(zhí)行,同時(shí)去執(zhí)行與while同級別的后續(xù)語句。其格式如下:

下面通過一個(gè)例子來看看while循環(huán)。

【例6-11】輸入一個(gè)運(yùn)算數(shù),然后將這個(gè)數(shù)乘以2,循環(huán)5次。

程序運(yùn)行結(jié)果如圖6-23所示。

圖6-23 循環(huán)5次結(jié)果

圖6-24 循環(huán)5次流程圖

其運(yùn)行的流程圖如圖6-24所示。

在while中使用else語句,其格式如下:

【例6-12】輸入一個(gè)小于5的數(shù),每次加1,直到其不小于5為止。

程序運(yùn)行結(jié)果如圖6-25所示。

圖6-25 程序執(zhí)行結(jié)果

6.6.2 for循環(huán)結(jié)構(gòu)

for語句通常由兩部分組成,一是條件控制部分,二是循環(huán)部分。for語句語法格式如下所示。

其中,“循環(huán)變量”是一個(gè)變量名稱,“遍歷結(jié)構(gòu)”則是一個(gè)列表。在Python中for語句之所以稱為“遍歷循環(huán)”,是因?yàn)閒or語句執(zhí)行的次數(shù)是由“遍歷結(jié)構(gòu)”中元素的個(gè)數(shù)決定的。遍歷循環(huán)就是依次從“遍歷結(jié)構(gòu)”中取出元素,置入循環(huán)變量中,并執(zhí)行對應(yīng)的語句塊。“遍歷結(jié)構(gòu)”可以是字符串、文件、組合數(shù)據(jù)類型或range()函數(shù)。else語句只在循環(huán)正常執(zhí)行并結(jié)束時(shí)才執(zhí)行。else語句通常是被省略的。

【例6-13】定義一個(gè)字符串,然后使用for語句遍歷字符串。

程序運(yùn)行結(jié)果如圖6-26所示。

圖6-26 循環(huán)遍歷結(jié)果

【例6-14】定義一個(gè)鏈表,將鏈表里面的數(shù)字按大小順序從小到大輸出。

程序運(yùn)行結(jié)果如圖6-27所示。

圖6-27 排序結(jié)果

6.6.3 break和continue語句

在程序運(yùn)行過程中,根據(jù)程序的目的,有時(shí)需要程序在滿足另一個(gè)特定條件時(shí)跳出本次循環(huán),或者跳出本次循環(huán)去執(zhí)行另外的循環(huán)。在Python中要實(shí)現(xiàn)循環(huán)的自由轉(zhuǎn)場就要用到兩個(gè)輔助保留字:break和continue,它們用來輔助控制循環(huán)。

break語句可以在循環(huán)過程中直接退出循環(huán),而continue語句可以提前結(jié)束本輪循環(huán),并直接開始下一輪循環(huán)。這兩個(gè)語句通常都必須配合if語句使用。

要特別注意,不要濫用break和continue語句。break和continue會(huì)造成代碼執(zhí)行邏輯分叉過多,容易出錯(cuò)。大多數(shù)循環(huán)并不需要用到break和continue語句,都可以通過改寫循環(huán)條件或者修改循環(huán)邏輯,去掉break和continue語句。

有些時(shí)候,如果代碼寫得有問題,會(huì)讓程序陷入“死循環(huán)”,也就是永遠(yuǎn)循環(huán)下去。這時(shí)可以按Ctrl+C組合鍵退出程序,或者強(qiáng)制結(jié)束Python進(jìn)程。

1. break語句

【例6-15】在銀行取錢的時(shí)候,經(jīng)常看見輸入密碼只有三次機(jī)會(huì),如果三次密碼都輸錯(cuò)了,那么就輸入不了了。我們都知道,這是通過循環(huán)來判斷賬號與密碼是否匹配,如果輸入了對的密碼,將使用break跳出循環(huán)。break語句可以在循環(huán)過程中直接退出循環(huán)。

程序運(yùn)行結(jié)果如圖6-28所示。

圖6-28 登錄賬號結(jié)果

2. continue語句

continue語句可以提前結(jié)束本輪循環(huán),并直接開始下一輪循環(huán)。

【例6-16】在數(shù)字匹配游戲中,可以清晰地感受到break與continue的不同,當(dāng)匹配的數(shù)字是4時(shí),在結(jié)束循環(huán)時(shí),輸出的是數(shù)字5。

程序運(yùn)行結(jié)果如圖6-29所示。

圖6-29 字符匹配結(jié)果

主站蜘蛛池模板: 阿拉善右旗| 景谷| 城步| 康马县| 贺兰县| 阿尔山市| 磐安县| 正阳县| 揭阳市| 河南省| 新乡市| 潼关县| 台北县| 威宁| 金沙县| 河间市| 阿合奇县| 峨山| 韶关市| 湖北省| 邯郸市| 肇庆市| 讷河市| 河池市| 滨海县| 子长县| 广德县| 三门峡市| 宾川县| 阿城市| 广南县| 敖汉旗| 卢氏县| 若羌县| 集贤县| 大竹县| 吴桥县| 同江市| 永定县| 沾化县| 团风县|