我正在权衡两者之间的差异
If[condition1 AND condition2, A, B]
和
If[condition1, If[condition2, A, B], B]
我的想法:嵌套的 IF 会更快。
我的推理:通过嵌套 IF,仅当条件 1 为真时才评估条件 2。在我正在做的事情中,这意味着 condition2 的评估次数将少于上面的第一个选项。
AND 是通常的逻辑“与”(当且仅当两个前提都为真时才为真)。通过 IF,我的意思是 IF[条件,当条件为真时,当条件为假时]。
我希望我的问题不会太不恰当;我确信有第一个选项运行得更快的例子。我只是希望某些事情大体上是正确的。
谢谢你。
最佳答案
Mathematica 将短路 And
的评估和 Or
如果在评估所有条件之前就知道结果。
您可以通过使用(人为)需要很长时间的条件来查看这一点:
Timing[If[False && (Pause[10]; True), True, False]]
Timing[If[False, If[(Pause[10]; True), True, False], False]]
并看到两者都在几分之一秒而不是十秒内返回。
关于if-statement - 一般来说,用一对嵌套的 IF 替换 AND 会加快速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317443/