一些迭代代码就是这样编写的
while(true) for(int i = 0 ; i<=4;++i)
{
{
System.out.println(i); System.out.println(i);
if(i==4)
break;
}
}
内部都有相同的逻辑作为假设。那么哪一个会更快,更好地在代码中使用,以及使用其中任何一个的含义是什么?
答案 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循环。 例如:
size()
函数的arraylist并通过length
知道数组的大小
属性。答案 7 :(得分:0)
忽略你的问题的错字,假设你想知道当loops
两者基本上做同样的事情时我选择哪一个。
答案是你可以选择任何人。
但如果您知道要运行for loop
的次数,最好使用loop
,因为您可以在condition
期间设置initialization
。如果你想扩展iteration
,将来也很容易改变它。
如果您不确定自己需要多少while
,则可以选择iteration
。在你的情况下,我将使用for loop
注意:答案是基于意见的。