如果Else VS Multiple Ifments

时间:2015-11-22 12:14:03

标签: javascript java c

我在编码时总是使用多个if语句:

if(logicalCheck){
  ...
}

if(secondLogicalCheck){
  ...
}

并且很少使用 If Else 。我理解使用我的方式意味着我可以完成多个逻辑检查,并且只能在if else链中出现一个。

我的问题是,在C,Java或JavaScript中使用一种方法相比,是否有任何性能优势?使用多个if语句有什么特别的错误吗?

3 个答案:

答案 0 :(得分:4)

仅使用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
}

将测试/比较所有条件

但在这种情况下

body{
    background-color: yellow;
}

@media (min-width: 769px){
    /* Styles here are only applied when the width
       of the window is more or equal to 769px */

    body{
        background-color: green;
    }
}

如果年龄为5岁,则仅测试第一个条件。

答案 1 :(得分:2)

如果预期最多其中一个条件为真,则使用if else-if将保存对某些条件的评估。由于评估条件可能很昂贵,因此在没有实际需要的情况下评估多个条件可能会降低性能。

如果同时有多个条件可以为真,那么决定是使用多个if语句还是单个if - else-if .. else结构取决于所需的逻辑 - 即你想要多个如果多个条件为真,则由多个条件访问的块。

答案 2 :(得分:0)

使用条款是:

如果您有多个独立逻辑用于不相关的限制或针对该条件的操作,那么您可以单独使用多个if语句:

if(conditionA){
    // do what suppose to do
}

if(conditionB){
    // do what suppose to do
}

。 。

如果您希望应用其中一个条件,则应使用if elseif else if状态网:

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.
}