一、嵌套循環(huán)專題
1.什么是嵌套循環(huán)?
? ? ?在一個(gè)循環(huán)語句內(nèi)部再嵌套一個(gè)或多個(gè)循環(huán),稱為嵌套循環(huán)。while、do-while與for循環(huán)可以任意嵌套多層。
嵌套循環(huán)的語法結(jié)構(gòu):
(1)for(初始表達(dá)式;布爾表達(dá)式;迭代因子){
for(初始表達(dá)式;布爾表達(dá)式;迭代因子){
循環(huán)體;
}
循環(huán)體;
}
(2)for(初始表達(dá)式;布爾表達(dá)式;迭代因子){
for(初始表達(dá)式;布爾表達(dá)式;迭代因子){
if(布爾表達(dá)式){
語句塊;
}else{
語句塊;
}
循環(huán)體;
}
循環(huán)體;
}
(3)for(初始化表達(dá)式;布爾表達(dá)式;迭代因子){
for(初始化表達(dá)式;布爾表達(dá)式;迭代因子){
循環(huán)體;
}
for(初始化表達(dá)式;布爾表達(dá)式;迭代因子){
……
循環(huán)體;
}
循環(huán)體;
}
(4)while(布爾表達(dá)式){
if(布爾表達(dá)式){
語句塊;
}else{
語句塊;
}
循環(huán)體;
}
示例1-1嵌套循環(huán):
執(zhí)行步驟:
1.初始化i的值;判斷i的值是否小于等于5;如果滿足i<=5執(zhí)行第二步;否則結(jié)束整個(gè)循環(huán);(遍歷每一行的數(shù))
2.初始化j的值;判斷j是否小于等于5;如果滿足j<=5;打印i的值;否則返回第一步;(遍歷每一列的數(shù))
3.直到i不滿足小于等于5;結(jié)束循環(huán)。


示例1-2分別計(jì)算100以內(nèi)的奇數(shù)及偶數(shù)和
執(zhí)行步驟:
1.分別初始化偶數(shù)和sum2,奇數(shù)和sum3;初始化a代表100以內(nèi)的數(shù)
2.遍歷1~100內(nèi)的整數(shù),如果a小于等于100執(zhí)行下一步,否則結(jié)束循環(huán);
3.假如a是100以內(nèi)的數(shù);判斷a是偶數(shù)還是奇數(shù),若為偶數(shù)執(zhí)行sum2+=a;否則執(zhí)行sum3+=a;
4.直到a不滿足條件,結(jié)束循環(huán),分別輸出奇數(shù)和及偶數(shù)和。


示例1-3∑1+∑2+……+∑100(累加)
1.先定義累加的和sum并初始化為0;
2.將100以內(nèi)的整數(shù)遍歷;初始化i;當(dāng)i<=100執(zhí)行第二步,否則結(jié)束循環(huán);
3.內(nèi)循環(huán)進(jìn)行累加;通過判斷j<=i是否累加;還是返回上一層循環(huán);
4.直到i>100結(jié)束循環(huán),輸出累加值。


示例1-4百錢百雞問題
需求:公雞5元一只,母雞3元一只,小雞一元3只,問100元100只雞的購買方法;
執(zhí)行步驟:
1.聲明i為公雞并初始化;100元錢公雞最多買20;所以第一層循環(huán)的布爾式為i<20;
2.聲明i為母雞并初始化;100元錢母雞最多買33;所以第二層循環(huán)的布爾式為i<33;
3.聲明i為小雞并初始化;100元錢小雞最多買300;但是總數(shù)不能超過,所以第三層循環(huán)的布爾式為i<100;
4.進(jìn)入最內(nèi)層循環(huán)后,通過判斷雞的總數(shù)為100與300元三種雞花費(fèi)錢是否相等;來輸出每種雞的數(shù)量。
5.通過遍歷每只雞的數(shù)量,循環(huán)判斷成立的條件,輸出每只雞的數(shù)量。


示例1-5打印倒立直角三角形
1.聲明i并初始化,布爾表達(dá)式i<6;控制打印行數(shù)為5行;(外循環(huán))
2.聲明j并初始化,布爾表達(dá)式j(luò)<6-i;控制每行打印的星星數(shù);(內(nèi)循環(huán))
3.直到i>=6;結(jié)束整個(gè)循環(huán);打印倒立直角三角形。


示例1-6打印平行四邊形、
思路:將左邊空白處看成倒直角三角形;
1.聲明i并初始化,布爾表達(dá)式i<4;控制打印行數(shù)為4行;(外循環(huán))
2.聲明j并初始化,布爾表達(dá)式j(luò)<3-i;控制打印空格循環(huán);(內(nèi)循環(huán))
4.聲明k并初始化,布爾表達(dá)式k<7;控制每行打印的星星數(shù);(內(nèi)循環(huán))
3.直到i>=4;結(jié)束整個(gè)循環(huán);打印平行四邊形。


示例1-7打印等腰三角形及倒立等腰三角形
打印等腰三角形執(zhí)行步驟:
1.聲明i并初始化,布爾表達(dá)式i<5;控制打印行數(shù)為4行;(外循環(huán))
2.聲明j并初始化,布爾表達(dá)式j(luò)<5-i;控制打印空格循環(huán);(內(nèi)循環(huán))
4.聲明j并初始化,布爾表達(dá)式j(luò)<2*i-1;控制每行打印的星星數(shù);(內(nèi)循環(huán))
3.直到i>=5;結(jié)束整個(gè)循環(huán);打印等腰三角形。
注意:不同語句塊聲明局部變量名相同時(shí)互不影響;


總結(jié):
1.不同循環(huán)語句及相同循環(huán)語句之間都可以嵌套;如:for循環(huán)嵌套for循環(huán);for循環(huán)嵌套while循環(huán);while循環(huán)嵌套for循環(huán)。
2.循環(huán)嵌套可以有多層,使用最多的是兩層;for循環(huán)嵌套for循環(huán)。
3.循環(huán)嵌套執(zhí)行步驟:
(1)外層判斷循環(huán)條件,滿足進(jìn)入外層循環(huán)體;
(2)內(nèi)層判斷循環(huán)條件;
(3)內(nèi)層循環(huán)體執(zhí)行;
(4)內(nèi)層循環(huán)變量累加,回到2執(zhí)行,直到不滿足內(nèi)層條件;
(5)外層循環(huán)變量累加,回到1執(zhí)行,直到不滿足外層循環(huán)條件,徹底退出循環(huán);