当前位置:  开发笔记 > 编程语言 > 正文

用for循环或while循环迭代?

如何解决《用for循环或while循环迭代?》经验,为你挑选了3个好方法。

我经常看到如下代码:

Iterator i = list.iterator();
while(i.hasNext()) {
    ...
}

但我写的是(当Java 1.5不可用或者每个都不能使用时):

for(Iterator i = list.iterator(); i.hasNext(); ) {
    ...
}

因为

它更短

它保持i在较小的范围内

它减少了混淆的可能性.(在i外面使用?i声明在哪里?)

我认为代码应该尽可能简单易懂,这样我才能制作复杂的代码来完成复杂的事情.你怎么看?哪个更好?

来自:http://jamesjava.blogspot.com/2006/04/iterating.html



1> Lou Franco..:

我更喜欢for循环,因为它还将迭代器的范围设置为for循环.



2> Jon Limjap..:

while,for和foreach结构有适当的用途:

while - 如果您正在迭代,请使用此选项,循环与否的决定因素仅基于条件.在这个循环结构中,保持索引只是次要问题; 一切都应该基于条件

for - 如果要循环,请使用此选项,主要关注的是数组/集合/列表的索引.如果您最有可能通过所有元素并以特定顺序(例如,通过排序列表向后),则使用for更有用.

foreach - 如果您只是需要通过您的收集而无论订单如何,请使用此选项.

显然上面有例外,但这是我在决定使用哪个时使用的一般规则.话虽如此,我倾向于foreach更频繁地使用.



3> 小智..:

为什么不使用for-each构造?(我有一段时间没有使用过Java,但这在C#中存在,我很确定Java 1.5也有这个):

List names = new ArrayList();
names.add("a");
names.add("b");
names.add("c");

for (String name : names)
    System.out.println(name.charAt(0));

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有