解释这个Java的表达方式

时间:2013-07-19 19:03:19

标签: java for-loop

有人可以向我解释这段代码吗?

class className {
    int[] coeffs;

    int count(int value) {
        int count = 0;
        for (int coeff: coeffs)
            if (coeff == value)
                count++;
        return count;
    }
}

我真正不理解的是这部分:

for (int coeff: coeffs)

是什么意思?谢谢你的帮助。

4 个答案:

答案 0 :(得分:1)

这是针对循环遍历数组int[]数组的每个循环的增强。

查看Oracle documentation

答案 1 :(得分:1)

这是一个foreach循环 - 它意味着对于数组coeffs中的每个值,将执行for循环中的代码,变量coeff表示在该特定迭代期间使用的值。

答案 2 :(得分:1)

在早期版本的Java中,只有C / Fortran样式“for()”循环。

Java 5(JDK 1.5,2004)引入了一个“foreach()”循环,其中包含您所描述的语法:

http://en.wikipedia.org/wiki/Foreach_loop#Java

for (type item: iterableCollection) {
  // do something to item
}

值得注意的是,虽然较新的“foreach”语法可能更“优雅”,但“旧”for循环索引实际上可以更快:

答案 3 :(得分:0)

这是一个增强的for循环。其结构如下:

for(Object o: collection)

基本上,objects是一个对象或基元数组,或者是一个Irablerable对象。

Java将迭代数组或Iterable,将o设置为检索到的对象/值,并处理该块。它允许快速迭代而无需处理自己的迭代器/