java中for (int i : arr) 的含义

本文详细解释了Java中for(inti:arr)循环的含义,以及与传统for循环(如for(inti=0;i<arr.length;i++))的等价性,通过Apptest类实例演示了如何遍历整型数组并打印元素。

for (int i : arr)的意思就是遍历arr这个数组的,数组内元素的类型是int,然后在这个for循环中,将这个数组元素的名字简单指定为i

运行代码:

public class Apptest {
    public static void main(String[] args) {
        int[] arr = {4,5,6,7};

        /**
         * int : 指定数组元素的类型
         * i   : 给你需要遍历的数组指定的名字
         * arr : 你需要遍历的数组
         */
        for (int i : arr){
            System.out.println(" 数组元素 : " + i);
        }
    }
}

输出结果:

它跟这个的意思是一模一样的:

public class Apptest {
    public static void main(String[] args) {
        int[] arr = {4,5,6,7};
        
        for (int i = 0; i < arr.length; i++){
            System.out.println(" 数组元素 : " + arr[i]);
        }
    }
}

 

`for (int num : arr)` 是 Java 中的 **增强 for 循环**(也称为 **for-each 循环**),它用于遍历数组或集合中的每一个元素,而无需使用索引。 --- ### ✅ 语法结构: ```java for (元素类型 变量名 : 数组或集合) { // 循环体:对每个元素进行操作 } ``` --- ### 🔍 具体解释:`for (int num : arr)` 假设你有如下代码: ```java int[] arr = {1, 2, 3, 4, 5}; for (int num : arr) { System.out.println(num); } ``` #### 含义逐字解析: | 部分 | 说明 | |--------------|------| | `int` | 表示数组中每个元素的类型是 `int`。循环变量必须匹配数组元素类型。 | | `num` | 是一个**局部变量**,用来临时存储当前遍历到的数组元素的值。每次循环自动更新。 | | `:` | 读作“in”或“属于”,表示“从右边的数组中取出每一个元素”。 | | `arr` | 是要遍历的数组(也可以是实现了 `Iterable` 接口的集合,如 `List`)。 | #### 执行过程: 1. 第一次循环:`num = 1` 2. 第二次循环:`num = 2` 3. 第三次循环:`num = 3` 4. ... 5. 直到遍历完所有元素为止。 等价于传统 for 循环写法: ```java for (int i = 0; i < arr.length; i++) { int num = arr[i]; System.out.println(num); } ``` 但更简洁、安全,避免了索引越界风险。 --- ### ⚠️ 注意事项 1. **不能修改原数组内容?可以,但有限制!** - 如果是基本类型数组(如 `int[]`),`num` 是值的副本,修改它不会影响原数组: ```java for (int num : arr) { num = 10; // ❌ 不会改变 arr 中的元素 } ``` - 要修改数组元素,必须使用普通 for 循环配合索引: ```java for (int i = 0; i < arr.length; i++) { arr[i] = 10; // ✅ 正确修改 } ``` 2. **适用于哪些类型?** - 所有一维数组:`int[]`, `String[]`, `double[]` 等。 - 实现了 `Iterable<E>` 接口的集合类:`List<E>`, `Set<E>` 等。 示例(遍历 List): ```java List<String> list = Arrays.asList("A", "B", "C"); for (String item : list) { System.out.println(item); } ``` --- ### ✅ 使用场景推荐 | 场景 | 是否适合用 `for (type var : collection)` | |------|-------------------------------| | 只读访问元素 | ✅ 非常适合 | | 需要索引位置 | ❌ 改用普通 for | | 修改集合结构(增删) | ❌ 可能引发异常,应使用 Iterator | | 遍历数组/集合并打印 | ✅ 推荐使用 | ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值