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
……
直到結束

了解完循環結構。我們聯系一下分支結構學習幾個常見的例子。
-
輸出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>
