(int i:x)的作用是什么?

时间:2015-04-12 10:03:56

标签: java for-loop

我是Java新手。我正在阅读某人对某个问题的解决方案,我遇到了这个问题:

        int[] ps = new int[N];
        for (int i = 0; i < N; i++)
            ps[i] = input.nextInt();

        int[] counts = new int[1005];
        for (int p : ps)
            counts[p]++;

最后两行做了什么?

4 个答案:

答案 0 :(得分:2)

这是 for-each循环。它将p设置为ps的第一个元素,然后运行循环体。然后它将p设置为ps的第二个元素,然后运行循环体。等等。

它近似为:

for(int k = 0; k < ps.length; k++)
{
    int p = ps[k];
    counts[p]++;
}

答案 1 :(得分:2)

For-each循环(Advanced或Enhanced For循环):

  

Java5中引入的for-each循环。它主要用于遍历   数组或集合元素。 for-each循环的优点是   它消除了错误的可能性并使代码更多   可读的。

语法

for(data_type variable : array | collection){}  

来源:Java For Each Loop

在你的情况下,这个循环正在迭代Array

不用于每个循环的等效代码

for (int i=0;i<ps.length;i++){
int p=ps[i];
counts[p]++;
}

答案 2 :(得分:0)

那是一个for循环。 for (int p : ps)遍历ps int数组

中的整数

答案 3 :(得分:0)

该行在数组的每个索引上进行迭代,并在p varable中的序列中取出其值。您可以通过

进行检查
for (int p : ps){            // if ps is {1,2,3}
   System.out.print(p+" ");  // it will print 1 2 3
   counts[p]++;
}