繁体   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