一個條件的情況下
執行時,對條件表達式進行判斷
如果結果為true,則執行if後的語句
如果結果為false,則執行else後的語句
if(條件表達式){
語句...
}else{
語句...
}
多個條件的情況下
由上往下依序對if後的條件表達式進行判斷
如果條件表達式結果為true,則執行當前if後的語句,執行完畢,不看後面的程式碼
如果條件表達式結果為false,則繼續往下判斷,直到找到結果為true
如果所有的條件表達式都是false,則執行else後的語句
if(條件表達式){
語句...
}else if(條件表達式){
語句...
}else if(條件表達式){
語句...
}else{
語句...
}
譬如這個例子
age = 122
if(age >= 100){
alert("相當長壽的人類")
}else if(age >= 80){
alert("耄耋之年")
}else if(age >= 60){
alert("已屆耳順之年")
}else if(age >= 30){
alert("已屆而立之年")
}else if(age >= 20){
alert("已屆若冠之年")
}else{
alert("未滿20歲")
}
如果以下這種寫法,結果會顯示"已經成年"
而不是"可以退休了"
因為第一個條件判斷式(age >= 18)結果為true,所以後面的 else if 條件永遠不會被檢查到
age = 68
if(age >= 18){
alert("已經成年")
}else if(age >= 30){
alert("已經步入中年")
}else if(age >=65){
alert("可以退休了")
}
建議可以改成以下程式碼
age = 18;
if (age >= 65) {
alert("可以退休了");
} else if (age >= 30) {
alert("已經步入中年");
} else if (age >= 18) {
alert("已經成年");
}
或是將條件判斷式寫得更詳細,但條件更複雜了,而且程式碼可讀性變差
age = 68
if(age >= 18 && age < 30){
alert("已經成年")
}else if(age >= 30 && age < 65){
alert("已經步入中年")
}else if(age >=65){
alert("可以退休了")
}