通常程式執行的順序都是由上到下執行,但是有些時候會需要按照不同條件去執行對應的程式碼,像是如果是晴天就戴墨鏡,如果是雨天就帶雨傘,如果都不是就啥都不帶。這種流程控制的方法就是if...else
, JavaScript 流程控制的語法有很多種:
if...else
可以拆成 if
、if else
、else if
三種寫法,都是用來控制條件(condition)的方法。
先來講最簡單的if
用法:
if (condition) {
// statements
}
只有在 condition 成立時(為True),才會執行{}
內的程式;如果 condition 不成立(為False) 就會跳過整個if
區塊。執行下方的程式會發現不會執行任何動作,因為 age 的值沒有符合 condition ,所以直接跳過:
var age = 12;
if (age > 18) {
alert("已成年");
}
如果 if 區塊裡面只有一個語句,可以省略{}
:
var age = 12;
if (age > 18)
alert("已成年");
如果想讓程式分別在 condition 成立/不成立時都做出不同的動作,可以使用if else
語法:
if (condition) {![](http://)
// statement1;
} else {
// statement2;
}
如果 condition 成立,會執行 statement1 的程式;不符合 condition 則會執行 statement2。下面的範例顯示如果未成年,就會顯示再幾年可以喝酒:
var age = 12;
if (age > 18) {
alert("已成年");
}
else {
var diff_age = 18 - age;
alert("再"+ diff_age +"年可以喝酒");
}
if
、if else
都是比較偏是非題的用法,但有些情況可能會有很多條件,這個時候就可以用 else if
語法,就可以不限制條件數量的控制執行動作:
if (condition_1) {
// statement_1;
} else if (condition_2) {
// statement_2;
} else if (condition_n) {
// statement_n;
} else {
// statement_last;
}
除了第一個 condition 前一定要放if
和最後一個條件一定要放else
之外,中間其他的條件前面都要接else if
。下面用尋找台北的郵遞區號當範例,執行程式後會出現沒這區的結果:
var postal_code = 102;
if (postal_code == 110)
alert("信義區");
else if (postal_code == 100)
alert("中正區");
else if (postal_code == 103)
alert("大同區");
else if (postal_code == 104)
alert("中山區");
else
alert("沒這區");
其中==
的部分叫做比較運算子(Comparison operator),用來比較資料的大小關係,下列是其他常用的比較運算子(要注意相等的比較運算子不是=
而是==
):
> 大於
< 小於
== 等於
!= 不等於
>= 大於等於
<= 小於等於