是否有一些罕见的语言构造我没有遇到过(比如我最近学到的一些,有些是关于Stack Overflow)在C#中得到一个表示foreach循环当前迭代的值?
例如,我目前根据具体情况做这样的事情:
int i = 0;
foreach (Object o in collection)
{
// ...
i++;
}
Run Code Online (Sandbox Code Playgroud) 在Java的for-each循环中是否有一种方法
for(String s : stringArray) {
doSomethingWith(s);
}
Run Code Online (Sandbox Code Playgroud)
找出循环已经处理的频率?
除了使用旧的和众所周知的for(int i=0; i < boundary; i++)循环之外,还有构造
int i = 0;
for(String s : stringArray) {
doSomethingWith(s);
i++;
}
Run Code Online (Sandbox Code Playgroud)
在for-each循环中使用这种计数器的唯一方法是什么?
在Python中,该enumerate函数允许您迭代一系列(索引,值)对.例如:
>>> numbers = ["zero", "one", "two"]
>>> for i, s in enumerate(numbers):
... print i, s
...
0 zero
1 one
2 two
Run Code Online (Sandbox Code Playgroud)
有没有办法在Java中这样做?
我在运行这个程序时得到了java.lang.ArrayIndexOutOfBoundsException:5.
public class TestArray {
public static void main(String[] args) {
int[] someArray = new int[5];
someArray[0] = 5;
someArray[1] = 10;
someArray[2] = 15;
someArray[3] = 20;
someArray[4] = 25;
System.out.println("Array length = " + someArray.length);
for (int i : someArray) {
System.out.println("Element at index " + i + ": " + someArray[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
}
当i大于或等于数组的长度(在这种情况下为5)时,循环是否应该退出?