Jos*_*ren 24 java loops for-loop
我是Java的新手,在关于for循环的另一个Stack Overflow问题中,答案说Java中有两种用法:
for (int i = 0; i < N; i++) {
}
for (String a : anyIterable) {
}
Run Code Online (Sandbox Code Playgroud)
我知道第一次使用for并且已经使用了很多,但我从未见过第二个.过去做什么以及何时使用它?
akf*_*akf 37
您指定的两个中的第一个是经典的C for循环.这使程序员可以控制迭代标准并允许三个操作:初始化; 循环测试; 增量表达式.虽然它常常用于递增重复一定次数的尝试,例如:
for (int i=0; i < N : i++)
Run Code Online (Sandbox Code Playgroud)
代码中有许多实例for用于迭代集合:
for (Iterator iter = myList.iterator(); iter.hasNext();)
Run Code Online (Sandbox Code Playgroud)
为了缓解第二种类型的boeplading(第三种子句常常未被使用),并且赞美Java 1.5中引入的泛型,你的两个例子中的第二个 - 增强的for循环,或者for-each loop- 被引入.
第二个用于数组和通用集合. 请参阅此文档.它允许您遍历一个通用集合,您可以在其中知道其类型Collection,而无需将结果Iterator.next()转换为已知类型.
相比:
for(Iterator iter = myList.iterator; iter.hasNext() ; ) {
String myStr = (String) iter.next();
//...do something with myStr
}
Run Code Online (Sandbox Code Playgroud)
同
for (String myStr : myList) {
//...do something with myStr
}
Run Code Online (Sandbox Code Playgroud)
循环的这种"新风格"也可以用于数组:
String[] strArray= ...
for (String myStr : strArray) {
//...do something with myStr
}
Run Code Online (Sandbox Code Playgroud)
“for in”循环主要是吸引人的,它使代码更易于阅读。(如果您将 : 发音为“in”)。
每当我迭代列表或数组时,我几乎只在自己的代码中使用第二种类型。
在处理大部分数学代码时,或者当我需要一个“i”来查看我循环了多少次时,我仍然使用常规 for 循环。
| 归档时间: |
|
| 查看次数: |
79459 次 |
| 最近记录: |