“for”在 Java 中的用法

2022-09-01 17:05:36

我对Java相当陌生,在另一个关于for循环的Stack Overflow问题中,一个答案说for在Java中有两种用法:

for (int i = 0; i < N; i++) {
}


for (String a : anyIterable) {
}

我知道第一次使用for,并且已经用过很多次了,但我从未见过第二次。它用于做什么,我什么时候使用它?


答案 1

您指定的两个循环中的第一个是经典的 C 循环。这使程序员可以控制迭代标准,并允许三个操作:初始化;循环测试 ;增量表达式。尽管它通常用于对设定的尝试次数进行增量重复,如 yor 示例所示:for

for (int i=0; i < N : i++)

在代码中还有更多实例,其中 用于循环访问集合:for

for (Iterator iter = myList.iterator(); iter.hasNext();)

为了简化第二种类型的样板(其中第三个子句经常未被使用),并补充 Java 1.5 中引入的泛型,引入了两个示例中的第二个示例 - 增强的 for 循环或 for-each 循环

第二个用于数组和泛型集合。请参阅此文档。它允许您循环访问泛型集合,在该集合中,您知道 的类型,而不必将 的结果转换为已知类型。CollectionIterator.next()

比较:

for(Iterator iter = myList.iterator; iter.hasNext() ; ) {
   String myStr = (String) iter.next();
   //...do something with myStr
}

for (String myStr : myList) {
   //...do something with myStr
 }

这个“新样式”的循环也可以与数组一起使用:

String[] strArray= ...
for (String myStr : strArray) {
   //...do something with myStr
}

答案 2

“for in”循环主要是令人眼花缭乱的,它使代码更易于阅读。(如果您将 : 发音为 “in”)。

每当我迭代列表或数组时,我几乎只在我自己的代码中使用第二种类型。

在处理大部分数学代码时,或者当我需要一个“i”来查看我循环了多少次时,我仍然使用常规的for循环。


推荐