JS循環嵌套的執行原理


【逆戰班】

循環嵌套是指在一個循環語句中再定義一個循環語句的語法結構,外循環執行一次,內循環全部執行完,直到外循環執行完畢,整個循環結束。

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('&nbsp;');

                }

            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整體循環結束。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM