Java中增强型for循环的语法是什么?

39

我被要求在我的编程中使用增强型 for 循环。

我只学过如何使用传统的 for 循环,因此不知道它和增强型 for 循环之间的区别。

在Java中,增强型 for 循环与传统的 for 循环有什么不同?

是否有任何需要注意的细节,教程通常没有提到?


11
欢迎来到 Stack Overflow!我们鼓励您研究您的问题。如果您已经尝试过一些方法,请将这些方法添加到问题中 - 如果没有,请先研究和尝试您的问题,然后再回来提问。 - user647772
8
如果user1920811已经在网上轻松找到答案而没有问这个问题,我就无法在谷歌搜索的第二条链接中找到我所需的精确语法。 - Richard Tingle
有12个人点赞了这个问题,21个人点赞了它的答案。也许应该重新开放这个问题?我认为那些完全违反网站规定被投票关闭的问题不会得到如此积极的社区回应。 - Ky -
@BenC.R.Leggiero 有14个人点赞了这个问题,22个人点赞了它的答案。也许应该重新开放这个问题?我认为那些完全违反网站规定被投票关闭的问题不会得到如此积极的社区回应。 - ʇolɐǝz ǝɥʇ qoq
是的,请重新打开这个问题,user1920811刚刚询问了语法。我经常发现stackoverflow上的问题包含比在线发布的教程更多的信息。 - sam1370
3个回答

49

但是...链接很糟糕,伙计!最好去绞刑架上见你的造物主。 - Adrian M.

10

增强型 for 循环只是在圆括号内限制参数的数量。

for (int i = 0; i < myArray.length; i++) {
    System.out.println(myArray[i]);
}

可以写成:

for (int myValue : myArray) {
    System.out.println(myValue);
}

2
注意:传统的 for 循环也可以做更多的事情。增强型循环仅用于迭代数组或实现了 Iterable 接口的类。传统的 for 循环也可以用于精确循环 n 次 (for(int i=0; i<n; i++)),无限循环 (for(;;)),滥用能力 (for(String name="me"; conn.isOpen(); System.out.println("hello!"))),以及许多其他类似的事情。 - Ky -
1
增强型for循环仅适用于迭代。如果您需要索引,或想要进行黑客攻击和/或滥用功能,则传统的for循环是正确的选择。 - Zoe stands with Ukraine

0
  1. 增强型 For 循环(Java)
for (Object obj : list);
  1. 在ArrayList中使用增强型For Each循环(Java)
ArrayList<Integer> list = new ArrayList<Integer>(); 
list.forEach((n) -> System.out.println(n)); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接