[英]If Else VS Multiple If Statements
我總是在編碼時使用多個if語句:
if(logicalCheck){
...
}
if(secondLogicalCheck){
...
}
很少使用If Else 。 我知道,使用我的方式意味着可以完成我的多個邏輯檢查,並且只有if if else鏈中的一個可以發生。
我的問題是,在C,Java或JavaScript中使用一種方法相對於另一種方法是否有性能優勢? 使用多個if語句有什么特別的錯誤嗎?
僅使用if
,解釋器或其他任何東西可以測試所有條件,但是如果(如果可能)使用else if
則在通過任何條件else if
將不測試或檢查else if
條件。
if (age < 10){
// do something
}
if (age < 20 && age > 10){
// do something
}
if (age < 30 && age > 20){
// do something
}
所有條件都會經過測試/比較
但是在這種情況下
if (age < 10){
// do something
}
else if (age < 20 && age > 10){
// do something
}
else if (age < 30 && age > 20){
// do something
}
如果年齡為5歲,則只會測試第一個條件。
如果最多期望其中一個條件為真,則使用if else-if
將保存對某些條件的評估。 由於評估條件可能會很昂貴,因此無需實際評估多個條件可能會降低性能。
如果可以同時滿足多個條件,則決定使用多個if語句還是使用一個if-else-if .. else結構取決於所需的邏輯-即,您是否要訪問多個塊?如果多個條件為真,則執行多個條件。
使用期限是這樣的:
如果您有多個獨立的邏輯用於條件的不相關限制或操作,則可以分別使用多個if
語句:
if(conditionA){
// do what suppose to do
}
if(conditionB){
// do what suppose to do
}
。 。 。
如果要應用其中一種條件,則應使用if else
或if else if
state ifnets:
if(conditionA) {
// do what suppose to do on conditionA
} else {
// do what suppose to do if the conditionA doesn't satisfied.
}
if(conditionA) {
// do what suppose to do on conditionA
} else if(conditionb) {
// do what suppose to do on conditionB
} else {
// do what suppose to do if non of the conditions were satisfied.
}
順便說一下,如果要使用if else if
鏈,最好使用switch case
語句:
switch(true){
case conditionA:
// do what suppose to do on conditionA
break;
case conditionB:
// do what suppose to do on conditionB
break;
default:
// do what suppose to do if non of the conditions were satisfied.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.