增强型for循环是java中遍历数组或iterable集合最简洁的方式,隐藏索引与边界判断;适用于只读遍历,但无法获取下标、修改原数组元素或在循环中删除集合元素。

增强型 for 循环(也叫 for-each)是 Java 中遍历数组或集合最简洁的方式,它隐藏了索引管理和边界判断,让代码更清晰、不易出错。
语法结构与基本用法
增强型 for 循环的语法为:
for (元素类型 变量名 : 数组名) { ... }
其中变量每次自动获取数组中的一个元素,按顺序从头到尾依次赋值。
例如遍历一个整型数组:
int[] nums = {10, 20, 30, 40};
for (int n : nums) {
System.out.println(n);
}
输出结果为:
10
20
30
40
适用场景和限制条件
- 只能用于已初始化的数组(包括基本类型和引用类型数组)或实现了 Iterable 接口的集合(如 ArrayList、HashSet)
- 不能直接修改数组中当前元素的值(因为变量是副本,不是引用)
- 无法获取当前元素的下标位置,也不支持反向遍历或跳过某些元素
- 不能在循环中删除集合元素(会抛出 ConcurrentModificationException),数组则无此问题但也不能改变长度
常见错误与注意事项
- 数组为 null 时会立即抛出 NullPointerException,使用前建议判空
- 基本类型数组(如 int[])中,变量必须声明为对应的基本类型(如 int),不能写成 Integer
- 对象数组(如 String[])中,变量应声明为对应引用类型(如 String),可安全调用其方法
- 若需同时访问索引,应改用传统 for 循环;若需条件跳过或提前终止,可用 continue/break,但逻辑仍受限
对比传统 for 循环的取舍建议
- 仅需读取每个元素 → 优先选 for-each,代码简洁、可读性高
- 需要索引、修改原数组内容、多数组同步遍历、或复杂控制逻辑 → 用传统 for 循环
- 遍历 List 且可能在循环中删除元素 → 改用迭代器 Iterator.remove()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











