簡體   English   中英

If Else VS Multiple If語句

[英]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 elseif 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM