2013-10-18 24 views
-1

一些迭代码是这样写的尽管或For循环,其中一个西服哪个条件

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

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

+5

你的while循环将陷入无限循环。 – nomann

+0

sry我忘了提及++我在while循环 –

+1

@DeepSaxena然后更新你的文章,这样对新访问者有好处 – SpringLearner

回答

1

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

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

+0

sry我忘了提及++我在while循环 –

+0

我的评论仍然有效:去抢手册:) – fritzone

+3

**去抢手册**如果你想回答,然后完全回答,以便未来的用户将受益。只给部分答案在评论部分会更好 – SpringLearner

0

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

第二个问题更清楚,当你必须考虑到性能时,你不必在干净的代码后退。

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

0

结束左侧while循环,你必须incriment i

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

0

为此,使用for之一,因为你需要的值为i。这对维护更为理解。无论如何,编译器会优化这两个代码,并且运行时可能会相同。

0

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

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

看起来吸尘器

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

进出口使用for每当我知道itterations提前数。

0

如果你知道有多少次你想要做一些操作,你必须使用循环,否则使用while循环。 例如:

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

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

答案是你可以去任何一个。

但它是更好地使用for loop,如果你知道你要多少次运行loop,你可以在initialization设置condition。如果你想延长iteration,将来也很容易改变它。

如果您不确定需要多少iteration,您可以选择while。在你的情况下,我会去for loop

注:答案是基于意见的。