和其他編程語言一樣,Java 允許循環(huán)嵌套。如果把一個循環(huán)放在另一個循環(huán)體內(nèi),那么就可以形成嵌套循環(huán)。
嵌套循環(huán)既可以是 for循環(huán)嵌套 while 循環(huán),也可以是 while 循環(huán)嵌套 do-while 循環(huán) …… 即各種類型的循環(huán)都可以作為外層循環(huán),也可以作為內(nèi)層循環(huán)。
當(dāng)程序遇到嵌套循環(huán)時,如果外層循環(huán)的循環(huán)條件允許,則開始執(zhí)行外層循環(huán)的循環(huán)體,而內(nèi)層循環(huán)將被外層循環(huán)的循環(huán)體來執(zhí)行——只是內(nèi)層循環(huán)需要反復(fù)執(zhí)行自己的循環(huán)體而已。
當(dāng)內(nèi)層循環(huán)執(zhí)行結(jié)束,且外層循環(huán)的循環(huán)體執(zhí)行結(jié)束時,則再次計算外層循環(huán)的循環(huán)條件,決定是否再次開始執(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)體實際上需要執(zhí)行 n×m 次。嵌套循環(huán)的執(zhí)行流程如圖 1 所示。
圖 1 嵌套循環(huán)的執(zhí)行流程
從圖 1 來看,嵌套循環(huán)就是把內(nèi)層循環(huán)當(dāng)成外層循環(huán)的循環(huán)體。當(dāng)只有內(nèi)層循環(huán)的循環(huán)條件為 false 時,才會完全跳出內(nèi)層循環(huán),才可以結(jié)束外層循環(huán)的當(dāng)次循環(huán),開始下一次循環(huán)。下面是一個使用嵌套循環(huán)輸出九九乘法表實例。
public static void main(String[] args) {
System.out.println("乘法口訣表:");
// 外層循環(huán)
for (int i = 1; i <= 9; i++) {
// 內(nèi)層循環(huán)
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + j * i + "\t");
}
System.out.println();
}
}
運行上面程序,看到如下運行結(jié)果:
乘法口訣表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
從上面運行結(jié)果可以看出,進(jìn)入嵌套循環(huán)時,循環(huán)變量 i 開始為 1,這時即進(jìn)入了外層循環(huán)。進(jìn)入外層循環(huán)后,內(nèi)層循環(huán)把 i 當(dāng)成一個普通變量,其值為 0。在外層循環(huán)的當(dāng)次循環(huán)里,內(nèi)層循環(huán)就是一 個普通循環(huán)。
實際上,嵌套循環(huán)不僅可以是兩層嵌套,而且可以是三層嵌套、四層嵌套 …… 不論循環(huán)如何嵌套, 總可以把內(nèi)層循環(huán)當(dāng)成外層循環(huán)的循環(huán)體來對待,區(qū)別只是這個循環(huán)體里包含了需要反復(fù)執(zhí)行的代碼。
填寫下面表單即可預(yù)約申請免費試聽java課程!害怕學(xué)不會?助教全程陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國推薦就業(yè)!
初級會計職稱中級會計職稱經(jīng)濟(jì)師注冊會計師證券從業(yè)銀行從業(yè)會計實操統(tǒng)計師審計師高級會計師基金從業(yè)資格稅務(wù)師資產(chǎn)評估師國際內(nèi)審師ACCA/CAT價格鑒證師統(tǒng)計資格從業(yè)
一級建造師二級建造師消防工程師造價工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測工程師建筑八大員注冊建筑師二級造價師監(jiān)理工程師咨詢工程師房地產(chǎn)估價師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評價土地登記代理公路造價師公路監(jiān)理師化工工程師暖通工程師給排水工程師計量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會工作者司法考試職稱計算機(jī)營養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級職稱護(hù)士資格證初級護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗技師臨床醫(yī)學(xué)理論中醫(yī)理論