![]() |
1
81
我更喜欢for循环,因为它还将迭代器的作用域设置为for循环。 |
![]() |
2
10
while、for和foreach结构有适当的用途:
显然,上面有例外,但这是我在决定使用哪一个时使用的一般规则。据说我倾向于使用
|
![]() |
3
6
为什么不为每个构造使用?(我在一段时间内还没有使用Java,但它存在于C语言中,我敢肯定Java 1.5也有这样的功能:
|
![]() |
4
4
正如你所指出的,我认为范围是最大的问题。 在“while”示例中,迭代器在循环外部声明,因此循环完成后它将继续存在。如果在以后某个时候再次使用相同的迭代器,这可能会导致问题。在另一个循环中使用它之前,您可能会忘记初始化它。 在“for”示例中,迭代器在循环内声明,因此其作用域仅限于循环。如果在循环之后尝试使用它,将得到一个编译器错误。 |
![]() |
5
2
如果只使用一次迭代器并丢弃它,则首选第二个窗体;否则必须使用第一个窗体 |
![]() |
6
2
伊莫尔 对于 如果从英语的角度来看这个代码,那么在这个场景中循环的可读性会降低。我正在写一个作者滥用的代码 对于 循环,而且不漂亮。比较以下内容:
VS
|
![]() |
7
1
我同意“for”循环在迭代时更清晰、更合适。 “while”循环适用于轮询,或者满足退出条件的循环数将根据循环内的活动而更改。 |
![]() |
8
1
在这种情况下,这可能并不重要,但编译器、虚拟机和CPU通常都有一些特殊的优化技术,这些技术是他们在后台使用的,可以使循环性能更好(在不久的将来并行运行),一般来说,它们不使用while循环(因为很难确定它的实际运行方式)。但在大多数情况下,代码清晰性应该胜过优化。 |
![]() |
9
1
使用for循环可以处理单个变量,因为它只为当前的working for循环设置变量范围。然而,这在while循环中是不可能的
.
例如:
因为(i=0;i n2;i+=2)做点什么。 所以在第1个循环之后,末端的i=n1-1。但当使用第二个循环时,您可以再次将i设置为0。 然而 int i=0; 当(我低于极限)做点什么..;我++; 因此,我在结尾处设置为极限-1。所以你不能在另一个while循环中使用相同的i。 |
![]() |
10
0
两者都可以。我自己使用(),不知道是否有编译问题。我怀疑他们两个都被优化到几乎相同的事情。 |
![]() |
11
0
我同意应该尽可能使用for循环,但有时会有更复杂的逻辑来控制循环体中的迭代器。在这种情况下,你必须和他一起去。 |
![]() |
12
0
为了清晰起见,我是负责人。当我使用 while循环 当遇到一些不确定的情况时。 |
![]() |
13
0
这两种方法都很好,但请记住,有时直接访问迭代器很有用(例如,如果要删除符合某个条件的元素,则在执行collection.remove(o)for(t o:collection)循环中会得到ConcurrentModificationException)。 我几乎总是喜欢编写for(blah:blah)[foreach]语法,因为它对我来说更自然易读。一般来说,迭代器的概念在编程之外并不真正具有并行性。 |
![]() |
14
0
学术界倾向于选择while循环,因为它使得程序的推理不那么复杂。我倾向于使用for或foreach循环结构,因为它们使代码更容易阅读。 |
![]() |
15
0
虽然两个都很好,但我倾向于使用第一个示例,因为它更容易阅读。 在while()循环的每一行上发生的操作更少,这使得代码的新手更容易理解正在发生的事情。 这种类型的构造还允许我将初始化分组在一个公共位置(方法的顶部),这也简化了对我的注释,以及对第一次阅读它的人的概念化。 |