while或For循环适合哪种条件

时间:2013-10-18 10:54:41

标签: java c++ c

一些迭代代码就是这样编写的

while(true)                           for(int i = 0 ; i<=4;++i)
                                        {
{  
    System.out.println(i);               System.out.println(i);
   if(i==4)                                
     break;
                                          }
}

内部都有相同的逻辑作为假设。那么哪一个会更快,更好地在代码中使用,以及使用其中任何一个的含义是什么?

8 个答案:

答案 0 :(得分:1)

第一个是无限循环:)(取决于循环之前的i)第二个(几乎)你所期望的。去抓一本关于你的编程语言的好手册,它会解释不同之处。

在另一个层面上:循环优化更适合for循环(AFAIK),因此“聪明”的编译器可能会为“for”循环生成更好的代码。 http://en.wikipedia.org/wiki/Loop_optimization

答案 1 :(得分:0)

它们完全不同,但如果它们的行为相同,请不要在这种情况下使用break;

第二个更清楚,当你必须考虑性能时,你不必在撤销干净的代码时这样做。

第二个bucle是自我记录的,而第一个需要添加一个理由来添加中断以便理解。

答案 2 :(得分:0)

要结束左侧的while循环,您必须增加i

编辑:假设循环开始时i小于4

答案 3 :(得分:0)

为此,请使用for,因为您需要i的值。它更加了解维护。无论如何,编译器将优化两个代码并且运行时可能是相同的。

答案 4 :(得分:0)

考虑到你的while不是无限循环,就性能而言没有区别。但是,我个人更喜欢循环,因为它更清洁。考虑一下:

int i = 0;
while (true) {
  doSomething(i++);
  if (i == 4)
    break;
}

看起来比较清洁

for (int i = 0; i <= 4; i++)
  doSomething(i);

答案 5 :(得分:0)

每当我事先知道迭代次数时,我就会使用for

答案 6 :(得分:0)

如果您知道要执行某些操作的次数,则必须使用for循环,否则请使用while循环。 例如:

  • 如果你有一些阵列或arraylist,那么假设你想要添加所有 然后你应该使用for循环,因为你知道它的大小 size()函数的arraylist并通过length知道数组的大小 属性。
  • 如果您有结果集,并且想要从中检索所有行 你应该使用while循环,因为你不知道有多少元素 结果集对象。

答案 7 :(得分:0)

忽略你的问题的错字,假设你想知道当loops两者基本上做同样的事情时我选择哪一个。

答案是你可以选择任何人。

但如果您知道要运行for loop的次数,最好使用loop,因为您可以在condition期间设置initialization。如果你想扩展iteration,将来也很容易改变它。

如果您不确定自己需要多少while,则可以选择iteration。在你的情况下,我将使用for loop

注意:答案是基于意见的。