📜  C++和Java的Foreach(1)

📅  最后修改于: 2023-12-03 14:59:51.880000             🧑  作者: Mango

C++和Java的Foreach

C++的Foreach

在C++11标准中,我们可以使用范围for语句实现“foreach”的功能。它使代码更加简洁,易于阅读,减少了指针和数组下标的使用,从而减少了代码的复杂性和错误率。

语法如下:

for (variable : sequence) {
    // statement
}

其中,variable是一个变量,它在循环的每次迭代中将自动设置为序列中的下一个值。在循环中,我们可以使用这个变量来访问序列中的元素。sequence通常是一个容器,例如vector、list、array等。

例如,遍历一个vector:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec {1, 2, 3, 4, 5};
    for (int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出:

1 2 3 4 5

也可以使用auto关键字推导变量类型:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec {1, 2, 3, 4, 5};
    for (auto i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出:

1 2 3 4 5
Java的Foreach

Java中的foreach又称为增强型for循环或for-each循环。它允许我们遍历数组或Iterable接口的实现类中的元素。foreach循环有助于减少代码量,提高可读性,并且可以避免数组下标的错误使用。

语法如下:

for (type variable : array) {
    // statement
}

其中,type是数组元素的类型,variable是一个变量,它在循环的每次迭代中将自动设置为数组中的下一个值。在循环中,我们可以使用这个变量来访问数组中的元素。array是要遍历的数组。

例如,遍历一个int数组:

public static void main(String[] args) {
    int[] arr = {1, 2, 3, 4, 5};
    for (int i : arr) {
        System.out.print(i + " ");
    }
    System.out.println();
}

输出:

1 2 3 4 5 

也可以使用var关键字推导变量类型(需要Java 10及以上版本):

public static void main(String[] args) {
    var arr = new int[] {1, 2, 3, 4, 5};
    for (var i : arr) {
        System.out.print(i + " ");
    }
    System.out.println();
}

输出:

1 2 3 4 5 

可以看到,C++和Java的foreach语法非常相似,都是通过遍历容器或数组来实现的,语法也简单明了。