if 跟 if else 可能會犯的錯誤

你踩到雷了嗎?

分清楚使用的時機

如果有多個 if ,代表這些 if 之間「沒有關聯性」,但在 if else 的時候是「有關聯性」的。參考這個例子:

1
2
3
4
5
6
7
8
var age = 70
if (age >= 65) {
console.log('老人')
} else if (age >= 30) {
console.log('年輕人')
} else if (age >= 10) {
console.log('小孩')
}

age 的值是 70,如果只有寫 if 的話,age 會符合每一個條件。(大於 65,大於 30,大於 10)

所以 if else 的意義在於:只有在第一個 if「沒有通過」時,才有機會進到下一個 else if 判斷句,

只有寫 if 的情況:

1
2
3
4
5
6
7
8
9
10
var age = 70
if (age >= 65) {
console.log('老人')
}
if (age >= 30) {
console.log('年輕人')
}
if (age >= 10) {
console.log('小孩')
}

這樣子寫會得到的結果會是:老人 年輕人 小孩

通常不寫成 if else 的情況是代表「有一行不管怎樣都要執行」:

1
2
3
4
5
6
7
var i = 1
while (i <= 10) {
if (i&1) {
console.log(i,'是奇數')
}
console.log(i++)
}

輸出結果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1 是奇數
1
2
3 是奇數
3
4
5 是奇數
5
6
7 是奇數
7
8
9 是奇數
9
10

這個例子有點爛,因為我一時想不到更好的範例。總之想告訴你的是 console.log(i++) 這行不管怎樣都會被執行,所以每一圈都會印出 i,而且當 i 是奇數時會在多印出一次 i 是奇數

if 的演化史 變數運算時該注意的幾件事
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×