【发布时间】:2018-06-13 22:52:49
【问题描述】:
假设我有这段代码:
age = 21;
allowedFromParents = false;
if (age >= 18 || allowedFromParents == true)
{
//go drink
}
当我调试这部分代码时,当它检查第一部分并且这是真的时,它已经进入语句内部,而无需检查其他语句。
现在,这只是一个简单的条件,但如果条件语句的计算量要大得多,并且在频繁循环中并且其中一个比另一个更有可能返回 true,该怎么办。
那么条件的顺序对性能有影响吗?
【问题讨论】:
-
您是为了知识而问这个问题,还是您在 OR 评估中的条件顺序确实存在性能问题?很明显,如果第一个条件比后者更频繁地返回 true,那么您将获得更好的性能,但这更多地取决于您在这些条件评估中所做的工作
-
@Steve 主要是为了知识。我几乎可以肯定它会影响性能,但我很好奇是否有更好的解释来解释我的想法。
-
最近我发现,除了性能之外,您还可以为许多其他用途更改语句优先级,它还可以用于缩短单个 if 语句。例如,也可以在单个语句中检查一个类是否不为空,然后立即检查该类中的值。在学习的过程中能更多地理解代码的逻辑是很好的。