首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >“for”在Java中的用法

“for”在Java中的用法
EN

Stack Overflow用户
提问于 2009-08-07 03:38:13
回答 4查看 81.1K关注 0票数 26

我对Java还很陌生,在另一个关于for loops的堆栈溢出问题中,有一个答案说在Java中有两个for的用法:

代码语言:javascript
复制
for (int i = 0; i < N; i++) {
}


for (String a : anyIterable) {
}

我知道for的第一个用法,并且用得很多,但我从来没有见过第二个用法。它是用来做什么的,我什么时候使用它?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-07 03:40:22

您指定的两个循环中的第一个是典型的C for循环。这为程序员提供了对迭代准则的控制,并允许三种操作:初始化;循环测试;增量表达式。虽然它经常用于递增重复一定次数的尝试,如您的示例:

代码语言:javascript
复制
for (int i=0; i < N : i++)

在代码中,还有更多使用for迭代集合的实例:

代码语言:javascript
复制
for (Iterator iter = myList.iterator(); iter.hasNext();)

为了证明第二种类型的样例(第三个子句通常未使用),以及对Java1.5中引入的Generics的补充,引入了两个示例中的第二个-增强的for循环,即for-each loop

第二个用于数组和泛型集合。See this documentation。它允许您迭代泛型集合,其中您知道Collection的类型,而不必将Iterator.next()的结果强制转换为已知类型。

比较:

代码语言:javascript
复制
for(Iterator iter = myList.iterator; iter.hasNext() ; ) {
   String myStr = (String) iter.next();
   //...do something with myStr
}

使用

代码语言:javascript
复制
for (String myStr : myList) {
   //...do something with myStr
 }

这种“新风格”的for循环也可以与数组一起使用:

代码语言:javascript
复制
String[] strArray= ...
for (String myStr : strArray) {
   //...do something with myStr
}
票数 39
EN

Stack Overflow用户

发布于 2009-08-07 03:47:51

"for in“循环主要是让人眼花缭乱的,它使代码更容易阅读。(如果您将:读作"in")。

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

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

票数 5
EN

Stack Overflow用户

发布于 2009-08-07 03:51:14

它被称为for each循环,基本上,它可以与任何实现

代码语言:javascript
复制
java.lang.Iterable

泛型集合实现此接口,但您也可以创建自己的类。它使得处理列表/集合中的所有内容变得非常容易,尽管缺点是您不能像在传统循环中那样显式地访问列表中的当前数字。由于对迭代器类的调用,这种类型的循环与传统循环相比存在一些额外的开销。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1242766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档