Java 中的 for-each
循环,也称为增强的 for
循环,是一种特殊的重复控制结构,允许你高效地编写需要执行特定次数的循环。这种类型的循环不仅在你知道需要重复多少次时有用,即使不知道具体的次数也同样适用。
for-each
循环的语法
for(声明 : 表达式) {
}
执行过程
-
声明 - 新声明的块变量的类型应与你正在访问的数组元素兼容。该变量将在
for
块内可用,并且其值将与当前数组元素相同。
-
表达式 - 此表达式的值是你需要遍历的数组。表达式可以是一个数组变量或者返回数组的方法调用。
示例
示例 1:遍历整数列表
在这个例子中,我们展示了如何使用 for-each
循环来打印一个整数列表的内容。我们创建了一个整数列表 numbers
并初始化了一些值。然后使用 for-each
循环打印每个数字。
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String args[]) {
List<Integer> numbers = Arrays.asList(10, 20, 30, 40, 50);
for(Integer x : numbers ) {
System.out.print( x );
System.out.print(",");
}
}
}
输出
10, 20, 30, 40, 50,
示例 2:遍历字符串列表
在这个例子中,我们展示了如何使用 for-each
循环来打印一个字符串列表的内容。我们创建了一个字符串数组 names
并初始化了一些值。然后使用 for-each
循环打印每个名字。
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String args[]) {
List<String> names = Arrays.asList("James", "Larry", "Tom", "Lacy");
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
输出
James, Larry, Tom, Lacy,
示例 3:遍历对象数组
在这个例子中,我们展示了如何使用 for-each
循环来打印一个学生对象数组的内容。我们创建了一个 Student
对象数组 students
并初始化了一些值。然后使用 for-each
循环打印每个学生的信息。
public class Test {
public static void main(String args[]) {
Student[] students = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };
for( Student student : students ) {
System.out.print( student );
System.out.print(",");
}
}
}
class Student {
int rollNo;
String name;
Student(int rollNo, String name){
this.rollNo = rollNo;
this.name = name;
}
@Override
public String toString() {
return "[ " + this.rollNo + ", " + this.name + " ]";
}
}
输出
[ 1, Julie ],[ 3, Adam ],[ 2, Robert ],
注意,在最后一个例子中,Student
类重写了 toString()
方法以便提供一个友好的字符串表示形式。这使得在 for-each
循环中直接打印对象成为可能。