JS中的循環結構


while循環:
語法
  while (expression) {
  code...
  }
執行規則:
  先對expression(表達式)做判定,如果為真,進入循環執行code,再判定……
  如果為假,就不會進入。
注: 如果expression第一次判定為假,則不會進入循環
注: 一定要在code部分修改expression中的內容,以期有朝一日表達式為假。否則就是死循環

 


 

do while循環:
語法
    do {
    code...
   } while (expression);
執行規則:
   先執行一次code,再做判定。與while循環不同,do while 無論條件如何 總會執行一次代碼。

  注意事項,與while循環相同,一定要在code部分修改expression中的內容,以期有朝一日表達式為假。否則就是死循環。

 


 

for 循環:
語法:
  for (初始化值; 判定條件; 修改初始化值) {
    code...
  }

執行過程:

  for (初始值1; 循環條件2; 改變初始值4) {
  要執行的代碼3
  }
 循環的順序:
  1 2 3 4
  2 3 4
  2 3 4
  2 3 4
  ……
  直到結束

 


了解完循環結構。我們聯系一下分支結構學習幾個常見的例子。

  1. 輸出0 ~ 100 之內的所有偶數
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script>
             for (var i = 0; i <= 100; i++) {
                // 判定這個數是否是偶數
                if (i % 2 === 0) {
                    // 判定方式: 如果能夠對2取余得0 說明是2的倍數 就是偶數
                    console.log(i);
                }
            }
        </script>  
    </body>
    </html>

   2. 計算1000 ~ 2000年之內的所有閏年

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
           // 閏年的計算條件: 能夠被4整除但是不能夠被100整除 或者 能夠被400整除
        // 定義一個計數器 累計找到了多少個閏年
        var count = 0;
        for (var i = 1000; i <= 2000; i++) {
            if (i % 4 === 0 && i % 100 != 0 || i % 400 === 0) {
                // 進來了說明是閏年 於是計數器累加
                count++;
                // console.log("公元" + i + "年是閏年");
                document.write("公元" + i + "年是閏年");
                if (count % 8 === 0) {
                    document.write("</br>");
                }
            }
        }
        // 思路:從1000 循環到2000 如果是閏年我們要輸入到頁面中
        // 每8個一行 於是我們就得有一種方式累計找到了多少個閏年
        // 所以我們就可以定義一個變量 專門用來累計找到的閏年的個數 
        // 於是定義count 專門累計
        // 每當count是8或者8的倍數時 執行一次document.write("</br>")
    </script>
</body>
</html>

    3.  求100 ~ 999 之內的所有水仙花數 並輸出

         

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // 水仙花數: 1個三位數的每一個位數的立方和 等於它自己 這樣的數字叫做水仙花數
        // ex: 153 = 1 * 1 * 1  + 5 * 5 * 5 + 3 * 3 * 3  125 + 27 + 1

        for (var i = 100; i <= 999; i++) {
            // 挨個判定每一個數是否是水仙花數
            // 先獲取個位數 對10求余
            var ge = i % 10;
            // 再獲取十位數
            var shi = parseInt(i % 100 / 10);
            // 再獲取百位數
            var bai = parseInt(i / 100);
            // console.log(i + "這個數字的百位數是" + bai + "十位數是" + shi + "個位數是" + ge);
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai === i) {
                console.log(i + "是一個水仙花數");
            } 
        }
    </script>
</body>
</html>    

    4.求0~100之內的所有質數

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // 質數: 除了1和它本身之外,沒有其它的數能夠把它整除 這樣的數叫做質數
        // 隨便定義一個數 
        var num = +prompt("請輸入一個大於2的正整數");
        // 定義一個標記變量 這個標記變量負責標記循環中是否有能夠整除的數
        var isZ = true;
        for (var i = 2; i < num; i++) {
            if (num % i === 0) {
                // 說明從2到10之間是有數可以把11整除的 那么它就不是質數 
                isZ = false;
            }
        }
        // 判定 isZ 如果為true 說明 循環過程中的if語句沒有進入 也就說明沒有數可以整除11 
        if (isZ) {
            alert(num + "是質數");
        } else {
            alert(num + "不是質數");
        }
    </script>
</body>
</html>

 


免責聲明!

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



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