1

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

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

为了:

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

尽管:

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

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

什么代码更有效?我一直说这种情况下我必须使用while,但我想知道低级别是否仍然更好,或者更好。

非常感谢。

4

3 回答 3

4

答案是:没关系。

除非您真的努力编写代码以查看差异,否则您不会看到任何性能差异,而真正重要的是代码的可读性(这将是您将来节省时间和金钱的地方),所以使用更容易理解的那个。

在你的情况下,我会建议这种While方法......


我还建议阅读 Eric Lippert 的这篇文章:好坏有多好?,以防万一您不了解可读性与愚蠢的优化:)

于 2013-11-09T01:28:57.887 回答
2

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

如上所述,while 应该会带来更好的可读性,因此是更好的选择。

于 2013-11-09T01:37:07.377 回答
1

两者都是一样forwhile

唯一的区别是您放置条件的位置。在内部,while 循环使用低级别的“for”语法。

在你的场景中。虽然是最好的选择** if you don't know the upper limit**

您可以使用

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

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

于 2013-11-23T06:40:28.263 回答