增强for循环用于简洁遍历数组或集合,语法为for(类型 变量:数组),变量是元素副本,修改它不影响原数组;空数组跳过,null则抛NullPointerException。

Java 中增强 for 循环(也叫 for-each 循环)是遍历数组或集合最简洁的方式,它隐藏了索引管理和边界检查,让代码更清晰、不易出错。
语法结构要写对
增强 for 循环的基本格式是:for (元素类型 变量名 : 数组名) { ... }。注意冒号 : 不能写成分号或逗号,变量类型必须与数组元素类型兼容。
- 如果是 int[] 数组,循环变量必须声明为 int,不能是 long 或 Integer(自动拆箱虽支持,但不推荐混淆)
- 字符串数组 String[] arr 对应的变量类型就是 String
- 数组为空或为 null 时会直接跳过循环体;但若数组引用为 null,运行时抛出 NullPointerException
遍历一维数组很直观
以整型数组为例:
int[] nums = {10, 20, 30, 40};
for (int num : nums) {
System.out.println(num);
}
输出结果是每行一个数字:10、20、30、40。每次迭代,num 自动获得数组中下一个元素的值,无需关心下标和长度。
不能直接修改数组元素值
增强 for 循环中的变量是元素的“副本”,对它的赋值不会影响原数组:
int[] a = {1, 2, 3};
for (int x : a) {
x = x * 2; // 这里修改的是 x,不是 a[i]
}
// a 仍是 {1, 2, 3},没变
如果需要修改原数组,仍得用传统 for 循环配合下标:
for (int i = 0; i <h3>支持所有一维数组和实现了 Iterable 的集合</h3><p>除了基本类型数组(如 int[]、char[]),引用类型数组(如 String[]、Person[])同样适用。同时,ArrayList、LinkedList、HashSet 等集合类也能直接用于增强 for 循环,因为它们实现了 <strong>Iterable</strong> 接口。</p>
- 二维数组不能直接用单层增强 for 遍历全部元素,但可以嵌套使用:for (int[] row : matrix) 再加一层 for (int val : row)
- 泛型集合如 ArrayList
,循环变量类型直接写 String,编译器自动推断
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











