“for”在 Java 中的用法
我对Java相当陌生,在另一个关于for循环的Stack Overflow问题中,一个答案说for在Java中有两种用法:
for (int i = 0; i < N; i++) {
}
for (String a : anyIterable) {
}
我知道第一次使用for,并且已经用过很多次了,但我从未见过第二次。它用于做什么,我什么时候使用它?
我对Java相当陌生,在另一个关于for循环的Stack Overflow问题中,一个答案说for在Java中有两种用法:
for (int i = 0; i < N; i++) {
}
for (String a : anyIterable) {
}
我知道第一次使用for,并且已经用过很多次了,但我从未见过第二次。它用于做什么,我什么时候使用它?
您指定的两个循环中的第一个是经典的 C 循环。这使程序员可以控制迭代标准,并允许三个操作:初始化;循环测试 ;增量表达式。尽管它通常用于对设定的尝试次数进行增量重复,如 yor 示例所示:for
for (int i=0; i < N : i++)
在代码中还有更多实例,其中 用于循环访问集合:for
for (Iterator iter = myList.iterator(); iter.hasNext();)
为了简化第二种类型的样板(其中第三个子句经常未被使用),并补充 Java 1.5 中引入的泛型,引入了两个示例中的第二个示例 - 增强的 for 循环或 for-each 循环
。
第二个用于数组和泛型集合。请参阅此文档。它允许您循环访问泛型集合,在该集合中,您知道 的类型,而不必将 的结果转换为已知类型。Collection
Iterator.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
}
“for in”循环主要是令人眼花缭乱的,它使代码更易于阅读。(如果您将 : 发音为 “in”)。
每当我迭代列表或数组时,我几乎只在我自己的代码中使用第二种类型。
在处理大部分数学代码时,或者当我需要一个“i”来查看我循环了多少次时,我仍然使用常规的for循环。