JavaScript 具有大部分程式語言提供的標準條件敘述,其語法來自 Java 和 C,這些敘述都是分支敘述,根據情況將導向不同路徑。
如果條件為真(true)就執行大括弧中的敘述;倘若為假(false)則忽略其內的敘述。
if( 條件敘述 ){ ... }
最好將 else 敘述作為預設情況:除非符合特定條件,否則就發生敘述所表達的情況。
if( 條件敘述 ){ ... }
else{ ... }
多重條件下才使用,基於性能考量,建議從最可能為真的條件開始排序,將求值條件減到最少。
if( 條件敘述一 ){ ... }
else if( 條件敘述二 ){ ... }
else{ ... }
特別注意 Javascript 區分大小寫,條件敘述不能自行改成大寫。
參考程式流程圖繪製:http://www2.lssh.tp.edu.tw/~hlf/class-1/lang-c/flow/flow-chat.htm
1if-else & if-else if 條件敘述
若條件成立所執行的程式碼只有一行,JavaScript 允許省略大括號。單行時,要與 if 同行還是放在下一行,一直都有爭議性,所以有括弧比較易讀,且較不容易出現 bug,若要一行建議都在同一行上,比較清楚
if 條件敘述
如果條件為真(true)就執行大括弧中的敘述;倘若為假(false)則忽略其內的敘述。
if( 條件敘述 ){ ... }
if( score > 60 ){
...
}
if( score > 60 )
...
if( score > 60 ) ...
什麼為真?
為準確使用任何類型的控制結構,必須完全掌握語言中的「真」條件,只要知道什麼是假(false),就能知道什麼是真(true),非假即真的道理,除了以下敘述為假,其他為真:
- false
- 0
- 空字串(""或者'')
- NaN(非數字)
- null
- undefined
if-else 條件敘述
最好將 else 敘述作為預設情況:除非符合特定條件,否則就發生敘述所表達的情況。
if( 條件敘述 ){ ... }
else{ ... }
if( score > 60 ){
...
}else{
...
}
if( score > 60 ){
if( score > 80 ){
...
}else{
...
}
}else{
...
}
if-else if 條件敘述
多重條件下才使用,基於性能考量,建議從最可能為真的條件開始排序,將求值條件減到最少。
if( 條件敘述一 ){ ... }
else if( 條件敘述二 ){ ... }
else{ ... }
if( score > 80 ){
...
}else if( score > 60 ){
...
}else{
...
}
var score = 65;
if(score > 60){
document.write('if(score > 60) => true');
}
if(score > 60){
document.write('if(score > 60) => true');
}else{
document.write('else => false');
}
if(score > 80){
document.write('if(score > 80) => true');
}else if(score > 60){
document.write('else if(score > 60) => true');
}else{
document.write('else => false');
}
巢狀結構
巢狀結構設計應注意:
- 縮排下層結構,從視覺上呈現邏輯架構
- 完整建立一組控制結構,加上所有大括號和小括號,增加巢狀結構
- 使用註解說明控制結構結束位置,避免解析錯誤
參考 MSDN if...else 陳述式:https://msdn.microsoft.com/zh-tw/library/85yyde5c(v=vs.94).aspx