首页 > 解决方案 > 为什么这个方法不抛出 ArrayIndexOutOfBoundsException?

问题描述

我正在学习 Java,但我不理解以下代码。

public static void main(String[] args) {
    
    try {
        int numbers[] = new int[5];
        int total = 0;
        
        for(int i = 0; i < 5; i++) {
            System.out.println(i);
            total += numbers[i];
        }   
    }
    catch(Exception e) {
        System.out.println("First Exception");
    }
    finally {
        System.out.println("Yes");
    }
}

为什么 Java 不抛出ArrayIndexOutOfBoundsException, 因为numbers[5]不是数组的现有元素?它只有索引 0-4,对吧?

标签: java

解决方案


在 for 循环中,增量发生在迭代结束之后,然后条件才完成。

因此,在您的情况下,when iis 4 条件为真并且循环继续,当迭代结束i时将递增到 5 并且条件将为假,因此循环将停止并且循环将永远不会工作i=5


推荐阅读