do...while 迴圈:先做再說,會先執行一次後再判斷條件,直到條件終止後,才會跳出迴圈。來一個印出1~5的小範例:
var i = 1 //初始值
do {
console.log(i) //{}迴圈要做的事
i++
} while (i <= 5) //終止條件
// 1
// 2
// 3
// 4
// 5
// 跳出迴圈時i=6,但因為外面沒有印出所以看不到。可以加一行console.log來看看
console.log(i) //6 (好console.log不用嗎?)
在寫迴圈時,不確定它是怎麼執行的情況下。可以用電腦的思維一行一行寫下來,幫助釐清。例如上面的迴圈我的理解是這樣:
初始值 i = 1
do 進入迴圈(沒有先判斷直接進迴圈)
console.log(i) //1
i = i+1 //先執行這一次i=2了
判斷條件 i <= 5 是true 回到do跑第二次
console.log(i) //2
i = 2+1
判斷條件 i <= 5 是true 回到do跑第三次
console.log(i) //3
i = 3+1
判斷條件 i <= 5 是true 回到do跑第四次
console.log(i) //4
i = 4+1
判斷條件 i <= 5 是true 回到do跑第五次
console.log(i) //5
i = 5+1
判斷條件 i <= 5 是false跳出迴圈,所以6沒有被印出。
VScode有偵錯模式可以一行一行的執行。
while 迴圈:先判斷條件,符合條件才會進到迴圈,直到條件終止才會跳出,一樣用上面的範例來改。
var i = 1 //初始值
while (i <=5 ) { //終止條件
console.log(i) //{}迴圈要做的事
i++
}
// 1
// 2
// 3
// 4
// 5
不小心製造出無限迴圈時,在Mac上可以按Ctrl+C來跳出。
for 迴圈:跟 while 迴圈一樣,但會把初始值,終止條件,迴圈要做的事都寫在一起,通常用於已知會跑多少圈的情況下,一樣用上面的範例來改。
for (var i = 1; i <= 5; i++) {
console.log(i)
}
// 1
// 2
// 3
// 4
// 5
課後小練習(昨天的題目):小明的體重70公斤,身高177公分,請幫他計算他的BMI範圍所對照的結果多少? BMI值的計算公式為: 體重 / 身高(公尺)*身高(公尺)
BMI範圍 | 對照結果 |
---|
BMI < 18.5 | 體重過輕
18.5 ≤ BMI < 24 | 正常範圍
24 ≤ BMI < 27 | 過重
27 ≤ BMI < 30 | 輕度肥胖
30 ≤ BMI < 35 | 中度肥胖
35 ≤ BMI | 重度肥胖
var weight = 70
var HeightCentimeter = 177
var HeightMeter = HeightCentimeter/100
var BMI = weight / HeightMeter**2
console.log("你的BMI:" + BMI)
if (BMI < 18.5) {
console.log("體重過輕")
} else if (BMI >= 18.5 && BMI < 24) {
console.log("正常範圍")
} else if (BMI >= 24 && BMI < 27) {
console.log("過重")
} else if (BMI >= 27 && BMI < 30) {
console.log("輕度肥胖")
} else if (BMI >= 30 && BMI < 35) {
console.log("中度肥胖")
} else {
console.log("重度肥胖")
}
// 你的BMI:22.34351559258195
// 正常範圍
MDN:Operator precedence
**
優先級會高於/
就沒有用括號去括(身高平方)這一個計算。
以上是我自己的淺解,沒有標準答案。如有錯誤還請各位大大不吝指教與糾錯。非常感謝!