我在编码时总是使用多个if语句:
if(logicalCheck){
...
}
if(secondLogicalCheck){
...
}
并且很少使用 If Else 。我理解使用我的方式意味着我可以完成多个逻辑检查,并且只能在if else链中出现一个。
我的问题是,在C,Java或JavaScript中使用一种方法相比,是否有任何性能优势?使用多个if语句有什么特别的错误吗?
答案 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 else
或if 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.
}