Can For Each循环结构可以在C中工作

时间:2013-04-13 15:34:35

标签: c

有人可以向我解释(int current:values)的工作原理。假设我们有这样的方法。感谢

public int count(int[] values, int value)
{
    int count = 0;
    for (int current : values)
    {
    if (current == value)
        count++;
    }
    return count;
}

5 个答案:

答案 0 :(得分:3)

相当于:

for (int i = 0; i < values.length; i ++) {
    int current = values[i]
    ...
}

它被称为增强型for循环。 (其他编程语言可能使用for ... inforeach,但它们的含义相同。)

在Oracle网站上有关它的

Here is an article

答案 1 :(得分:0)

它遍历values数组中的所有元素。它与此相同,只是没有索引变量:

for (int i = 0; i < values.length; ++i) {
    int count = 0;
    if (current == values[i])
        count++;
    return count;
}

您可以将其视为“for each”循环。换句话说,对于values数组中的每个元素,执行此循环。

答案 2 :(得分:0)

for(int current : values)

是for-each循环,类似于:

for(int i =0 ; i< values.length; i++)

答案 3 :(得分:0)

它不仅仅是一个for,它是一个foreach,它的工作原理如下:

public int count(int[] values, int value)
{
    int count = 0;
    for (int i=0;i<values.length;i++)
    {
    current = values[i];
    if (current == value)
        count++;
    }
    return count;
}

答案 4 :(得分:0)

for-each和等效语句具有这些形式。给出了两个基本的等价形式,取决于它是一个数组还是一个遍历的Iterable。在这两种情况下都需要一个额外的变量,即数组的索引。

For-each loop

for (type var : arr) {
   body-of-loop
}

等效于循环

for (int i = 0; i < arr.length; i++) { 
   type var = arr[i];
   body-of-loop
}

<强>更新

Turbo C不支持每个循环。但同样可以实现使用C的循环结构。

请在此处阅读:For Each Loop supports in languages