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