for(x:y)循环在c ++中无法正常工作

匿名

我尝试了2种不同的for循环,其中一种有效,但其他似乎没有。第一个for循环的输出:2 3 4 5 5,第二个for循环的输出:1 2 3 4 5。

#include <iostream>
int main() 
{
    int arr[5] = {1,2,3,4,5};
    for (int y : arr) std::cout << arr[y] << std::endl;
    std::cout << "---------" << std::endl;
    for (int i = 0; i<5;i++){
        std::cout << arr[i] << std::endl;
    }
    return 0;
}

戈南一世

第一个循环是基于范围的循环,与在一定范围的值(例如容器中的所有元素,https://en.cppreference.com/w/cpp/语言/范围

它类似于Java或C#foreach样式循环。

在这种循环中,y取的值是数组本身中的元素的值(1,2,3,4,5),而不是索引(0,1,2 ...),因此您不必不需要打印arr[y],只打印y自己

例如,以下代码中的两个循环将打印10,20,30,40,50

#include <iostream>
int main() 
{
    int arr[5] = {10,20,30,40,50};
    for (int y : arr) std::cout << y << std::endl;
    std::cout << "---------" << std::endl;
    for (int i = 0; i<5;i++){
        std::cout << arr[i] << std::endl;
    }
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章