【逆戰班】
循環嵌套是指在一個循環語句中再定義一個循環語句的語法結構,外循環執行一次,內循環全部執行完,直到外循環執行完畢,整個循環結束。
while、do.. while和for循環語句都可以進行嵌套,並且他們之間可以進行互相嵌套。最常見的是在for循環中嵌套for循環。格式如下:
for (循環變量初始值; 循環條件; 步長)
{
循環體
.......
for (循環變量初始值; 循環條件; 步長)
{
循環體
........
}
}
例子一:
利用循環嵌套輸出一個金字塔形狀的三角形:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
for (var j = 1; j <= 5; j++) {//外層循環表示有多少行
for(var k=1;k<=5-j;k++){//內層循環體一:控制每一層開始輸出及格空格符
document.write(' ');
}
for (var i = 1; i <= j; i++) {//內層循環體二:控制輸出 * 的個數
document.write('* ');
}
document.write('<br>');//每打印一行進行換行操作
}
</script>
</body>
</html>
運行結果如下:

在其中定義了兩層 for 循環,分別為外層循環和內層循環,外層循環用於控制輸出的行數。內層循環體一用於控制每一行開始輸出空格的個數,內層循環體二用於控制每一行輸出“* ”的個數,最后輸出一個三角形。具體執行步驟如下:
第一步:執行外層循環,定義變量j並賦值為1,j<=5結果為true,進入外層循環。
第二步:執行內層循環體一,定義變量k並賦值為1,此時j的值為1,k<=5-1結果為true ,進入內存循環體一。
第三部:執行內存循環體一的語句,輸出一個空格符。
第四部:執行內層循環體一的步長k++;此時k=2。
第五步:繼續執行內層循環體一,執行順序同第二、三、四步一樣,直到k=5內層循環體一執行完畢,第一行輸出四個空格符。
第六步:執行內層循環體二,定義變量i並賦值為1,i<=1結果為true,進入內層循環體二。
第七部:執行內層循環體二的語句,輸出一個“* ”。
第八部:執行內層循環體一的步長i++;此時i=2。
第九步:繼續執行內層循環體二,i<=1結果為false,結束內層循環體二。
第十步:執行外層循環語句,換行。
第十一步:執行外層循環的步長j++;此時j=2。
第十二步:繼續執行外層循環,職業順序同第一到第十一步。直到j=6整體循環完畢,輸出一個三角形。
例子二;
百雞百錢 : 有一百錢 要買一百雞,公雞5錢1只,母雞3錢1只,仔雞3只1錢 ,一百錢買一百雞,每種雞都要有
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
for(var x=1;x<=98;x++){//外層循環控制公雞數量
for(y=1;y<=98;y++){//中間循環控制母雞數量
for(z=1;z<=98;z++){//內層循環控制仔雞數量
if(x*5+y*3+z*1/3==100&&x+y+z==100){//在if語句中寫出條件表達式
console.log(`公雞有${x}只,母雞有${y}只,仔雞有${z}只`);//在控制台輸出結果
}
}
}
}
</script>
</body>
</html>
運行結果如下:

在其中定義了三層循環結構,外層循環控制公雞數量,中間循環控制母雞數量,內層循環控制仔雞數量。具體執行步驟如下:
第一步:執行外層循環,定義變量x並賦值為1,x<=98結果為true,進入外層循環。
第二步:執行中間循環,定義變量y並賦值為1,y<=98結果為true,進入中間循環。
第三部:執行內層循環,定義變量z並賦值為1,z<=98結果為true,進入內層循環。
第四步:執行if 語句,進行條件判斷,結果為false,結束if 語句。
第五步:執行內層循環的步長z++;此時z=2。
第六步:繼續執行內層循環,直到z=99,結束內層循環。
第七步;執行中間循環的步長y++,此時y=2。
第八步:執行中間循環,y<=98結果為true。進入中間循環。
第九步:執行內層循環,步驟同第三至第六步。
第十步:執行中間循環,直到y=99,結束中間循環。
第十一步:執行外層循環的步長x++,此時x=2。
第十二步:直到x=99整體循環結束。
