什么是if和return或while更快更好?

时间:2013-11-09 01:25:14

标签: java javascript c cpu-speed

我有关于for和while循环的问题,因为我们必须移动一个值直到满足条件。我想知道哪个在低级别更有效率,为什么?

也就是说,这两个代码给出了相同的结果:

有关:

for (int i = 0; i<10 ; i++)
{
    if (i==4)
    {
        return;
    }
}

WHILE:

int i=0;
while (i<10 and i!=4)
{
    i++;
}

这是一个可能的循环的一个小例子,我们可以查看数千个记录。

什么代码更有效?我总是说在这种情况下我必须使用一段时间,但我想知道是否还有更好的低水平还是更好。

非常感谢。

3 个答案:

答案 0 :(得分:4)

答案是:没关系。

除非你真的努力使代码看到差异,否则你不会看到性能上的任何差异,真正重要的是你的代码的可读性(这是你节省时间和金钱的地方)在未来),所以使用哪一个更容易理解。

在您的情况下,我会建议采用While方法......


我还建议您阅读Eric Lippert撰写的这篇文章:How Bad Is Good Enough?,以防您因可读性与愚蠢的优化而未被出售:)

答案 1 :(得分:2)

他们应该非常相似地编译。在低级别,您正在查看在循环中执行命令,然后您将有两个调用来比较值并跳转到下一个代码块,如果条件要求退出循环。

如上所述,虽然应该提高可读性,因此是更好的选择。

答案 2 :(得分:1)

forwhile都是相同的。

唯一的区别是你放置病情的地方。 在内部,while循环使用低级别的'for'语法。

在您的方案中。 虽然是最佳选择** if you don't know the upper limit **

你可以使用

While(i!=4)
{
 i++
}

如果您知道上限,请使用for循环,否则while是最好的朋友。

相关问题