Performance 如何避免检查包含复杂操作的if语句中的每个条件
假设我有以下代码:Performance 如何避免检查包含复杂操作的if语句中的每个条件,performance,syntax,Performance,Syntax,假设我有以下代码: if (condition1 || condition2) { some_complex_operation(); // memory or time wise, doesn't matter if (condition1) { doJob1(); } if (condition2) { doJob2(); } } 当然,这里的正常过程是省略第一个if条件,但是因为我希望我的复杂操作只在满足其中一个条件
if (condition1 || condition2) {
some_complex_operation(); // memory or time wise, doesn't matter
if (condition1) {
doJob1();
}
if (condition2) {
doJob2();
}
}
当然,这里的正常过程是省略第一个if条件,但是因为我希望我的复杂操作只在满足其中一个条件时发生,所以我希望避免每次都这样做
有没有语法上更好的方法来重写这部分代码?除非对您的条件进行检查很昂贵,否则我认为您的代码是正确的(如果检查很昂贵,您可以在第一个
if
之前将其转换为布尔值)
替代办法是:
- 将调用移到两个
中的复杂操作,并删除外部if
,但我更喜欢它现在的样子,因为它位于一个块中if
- 根据条件的值,您可以使用
语句,而不是两个switch
,但这没有多大区别if
If
之前放置一个else
。您甚至可以删除第二个复选框,只使用else
,但是您必须确保条件的数量永远不会改变
当然,一般来说,对于或,总是将最早出现的条件放在第一位(在这两种情况下),因此当第一个条件的计算结果为true
时,无需检查第二个条件