您好,登錄后才能下訂單哦!
Python 程序中,如果把一個(gè)循環(huán)放在另一個(gè)循環(huán)體內(nèi),那么就可以形成循環(huán)嵌套。循環(huán)嵌套既可以是 for 循環(huán)嵌套 while 循環(huán),也可以是 while 循環(huán)嵌套 for 循環(huán),即各種類型的循環(huán)都可以作為外層循環(huán),各種類型的循環(huán)也都可以作為內(nèi)層循環(huán)。
當(dāng)程序遇到循環(huán)嵌套時(shí),如果外層循環(huán)的循環(huán)條件允許,則開(kāi)始執(zhí)行外層循環(huán)的循環(huán)體,而內(nèi)層循環(huán)將被外層循環(huán)的循環(huán)體來(lái)執(zhí)行(只是內(nèi)層循環(huán)需要反復(fù)執(zhí)行自己的循環(huán)體而己)。只有當(dāng)內(nèi)層循環(huán)執(zhí)行結(jié)束且外層循環(huán)的循環(huán)體也執(zhí)行結(jié)束時(shí),才會(huì)通過(guò)判斷外層循環(huán)的循環(huán)條件,決定是否再次開(kāi)始執(zhí)行外層循環(huán)的循環(huán)體。
根據(jù)上面分析,假設(shè)外層循環(huán)的循環(huán)次數(shù)為 n 次,內(nèi)層循環(huán)的循環(huán)次數(shù)為 m 次,那么內(nèi)層循環(huán)的循環(huán)體實(shí)際上需要執(zhí)行 n × m 次。循環(huán)嵌套的執(zhí)行流程圖如圖 1 所示:
從圖 1 來(lái)看,循環(huán)嵌套就是把內(nèi)層循環(huán)當(dāng)成外層循環(huán)的循環(huán)休。只有內(nèi)層循環(huán)的循環(huán)條件為假時(shí),才會(huì)完全跳出內(nèi)層循環(huán),才可以結(jié)束外層循環(huán)的當(dāng)次循環(huán),開(kāi)始下一次循環(huán)。
下面是一個(gè)循環(huán)嵌套的示例代碼:
# 外層循環(huán)
for i in range(0, 5) :
j = 0
# 內(nèi)層循環(huán)
while j < 3 :
print("i的值為: %d , j的值為: %d" % (i, j))
j += 1
運(yùn)行上面程序,將看到如下運(yùn)行結(jié)果:
i的值為: 0 , j的值為: 0
i的值為: 0 , j的值為: 1
i的值為: 0 , j的值為: 2
......
從上面的運(yùn)行結(jié)果可以看出,當(dāng)進(jìn)入嵌套循環(huán)時(shí),循環(huán)變量 i 開(kāi)始為 0,這時(shí)即進(jìn)入了外層循環(huán)。當(dāng)進(jìn)入外層循環(huán)后,內(nèi)層循環(huán)把 i 當(dāng)成一個(gè)普通變量,其值為 0。在外層循環(huán)的當(dāng)次循環(huán)中,內(nèi)層循環(huán)就是一個(gè)普通循環(huán)。
實(shí)際上,嵌套循環(huán)不僅可以是兩層嵌套,還可以是三層嵌套、四層嵌套……不論循環(huán)如何嵌套,都可以把內(nèi)層循環(huán)當(dāng)成外層循環(huán)的循環(huán)體來(lái)對(duì)待,區(qū)別只是這個(gè)循環(huán)體中包含了需要反復(fù)執(zhí)行的代碼。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。