例如,让我们考虑以下 2 个代码:
for (i = 0; i < 1000; i++)
{
if ( i % 2 != 0)
{
continue;
}
else
{
...
}
}
和
for (i = 0; i < 1000; i++)
{
if (i % 2 == 0)
{
...
}
}
两者都会导致相同的结果。那么使用哪一种呢?哪一个更好?两者之间是否存在显着的性能差异?让我们看看你们对此有何看法。我喜欢我在这里看到的关于这些事情的讨论。这可能会导致更好的代码编写和更好的执行时间。我发布了这个问题,因为我没有找到答案。如果我没有找到答案,我将来可能会发布另一个这样的。
附言当你可以不用它时,在循环中使用 continue 的目的是什么?
最佳答案
在这个特定的例子中?使用 continue
没有任何意义任何。
正如您所提到的,两个代码示例产生完全相同的结果。并且两者都不会比另一个更快。
您选择哪一个的决定应该基于 可读性和清晰度 ,而不是某种误导的“优化”尝试。考虑到这一点,第二个要清楚得多。我会认真质疑在真实代码库中使用第一个的人的编程能力。
作为基本准则,切勿使用 if-else
当单if
会做。在这种情况下,您正在比较 !=
然后用 else
找到相反的结果声明——这几乎就像在说 !(!=)
,产生双重否定。很难阅读或理解。通常,您应该尝试评估 if
中的积极条件。声明,而不是负面声明,以防止这种情况发生。
而且真的没有理由发布与此类似的其他问题。所有的答案都会是一样的。忽略任何可能的性能差异(如果存在的话,考虑到优化编译器,这是不太可能的),并专注于作为必须阅读它的人,哪个版本对您最有意义。请忽略任何给你相反建议的人。
关于optimization - 继续循环 if 语句内 vs. 在循环内使用 if 语句的否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6002374/