嵌套循環(huán)和if語(yǔ)句的嵌套原理相似,就是在一個(gè)循環(huán)體內(nèi)嵌套另外一個(gè)循環(huán)體。不同的是循環(huán)嵌套可以采用for-for嵌套、for-while嵌套、while-for嵌套、以及while-while嵌套四種形式。
1. for-for嵌套
它的形式為:
for i in range(n): for j in range(m): 循環(huán)體2 循環(huán)體1
舉個(gè)例子:
我們定義兩個(gè)列表(一種存儲(chǔ)數(shù)據(jù)的容器)。
list_first = [1,2,3,4,5,6,7,8,9]
list_second = [2,4,8,10,12,20]
我們要找到兩個(gè)列表中相同的數(shù)據(jù)并打印出來(lái)。
代碼如下:
list_first = [1,2,3,4,5,6,7,8,9] list_second = [2,4,8,10,12,20] for i in list_first: for j in list_second: if i == j: print(i)
輸出結(jié)果為:
2 4 8
2. for-while嵌套
它的形式為:
for 變量 in 對(duì)象: while 條件: 循環(huán)體2 循環(huán)體1
舉個(gè)例子:
index = [1,32,77,121,150]
遍歷輸出index列表中的值,對(duì)于小于100的數(shù),把它每次加上10,直到大于100后再輸出。
代碼如下:
index = [1,32,77,121] for i in index:#遍歷index while i < 100:#如果i小于100 i += 10#每次加上10 print(i)
輸出結(jié)果為:
101 102 107 121
3. while-while嵌套
結(jié)構(gòu)如下:
while 條件: while 條件: 循環(huán)體2 循環(huán)體1
具體就不再舉例,大家可以去在試著使用這種結(jié)構(gòu)去解決問(wèn)題。
4. while-for嵌套
結(jié)構(gòu)如下:
while 條件: while 條件: 循環(huán)體2 循環(huán)體1
5. 九九乘法表(作業(yè)1570)
在循環(huán)嵌套里有一比較經(jīng)典的例子——打印九九乘法表。通過(guò)這個(gè)實(shí)例可以更清晰的看到雙層循環(huán)嵌套的結(jié)構(gòu)。
我們先來(lái)看一下代碼:
for i in range(1,10):#先遍歷1~9 for j in range(1,i+1):#然后遍歷1~i print(i,'*',j,'=',i * j,end='丨')#循環(huán)輸出1~i * i的值 print(end='\n')
再看一下輸出結(jié)果:
1 * 1 = 1丨 2 * 1 = 2丨2 * 2 = 4丨 3 * 1 = 3丨3 * 2 = 6丨3 * 3 = 9丨 4 * 1 = 4丨4 * 2 = 8丨4 * 3 = 12丨4 * 4 = 16丨 5 * 1 = 5丨5 * 2 = 10丨5 * 3 = 15丨5 * 4 = 20丨5 * 5 = 25丨 6 * 1 = 6丨6 * 2 = 12丨6 * 3 = 18丨6 * 4 = 24丨6 * 5 = 30丨6 * 6= 36丨 7 * 1 = 7丨7 * 2 = 14丨7 * 3 = 21丨7 * 4 = 28丨7 * 5 = 35丨7 * 6= 42丨7 * 7 = 49丨 8 * 1 = 8丨8 * 2 = 16丨8 * 3 = 24丨8 * 4 = 32丨8 * 5 = 40丨8 * 6= 48丨8 * 7 = 56丨8 * 8 = 64丨 9 * 1 = 9丨9 * 2 = 18丨9 * 3 = 27丨9 * 4 = 36丨9 * 5 = 45丨9 * 6= 54丨9 * 7 = 63丨9 * 8 = 72丨9 * 9 = 81丨
運(yùn)行圖:
原理:先進(jìn)行第一層循環(huán),依次為1~9。第二層循環(huán)是在第一層循環(huán)的基礎(chǔ)上再進(jìn)行依次遍歷,假如第一層循環(huán)現(xiàn)在是5,那么第二層循環(huán)找到1~5,然后分別用1~5去乘上5,那么就完成一次循環(huán)。我們?cè)诘?層循環(huán)中打印一個(gè)換行,可以使得代碼更加明了。
1013 | [編程入門]Sn的公式求和 |
1015 | [編程入門]求和訓(xùn)練 |
1016 | [編程入門]水仙花數(shù)判斷 |
1018 | [編程入門]有規(guī)律的數(shù)列求和 |
1019 | [編程入門]自由下落的距離計(jì)算 |
1020 | [編程入門]猴子吃桃的問(wèn)題 |
1022 | [編程入門]篩選N以內(nèi)的素?cái)?shù) |
1059 | 二級(jí)C語(yǔ)言-等差數(shù)列 |
1060 | 二級(jí)C語(yǔ)言-同因查找 |
1135 | C語(yǔ)言訓(xùn)練-求s=a+aa+aaa+aaaa+aa...a的值 |
1570 | 藍(lán)橋杯算法提高VIP-輸出九九乘法表 |
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程