Java 什么';这个for循环有什么问题?奇怪的错误

Java 什么';这个for循环有什么问题?奇怪的错误,java,for-loop,Java,For Loop,我在学习for循环,每当我做这个循环时 String[] fruits = {"Apple", "Banana", "Orange"}; for (int k = fruits.length;k > 0; k--) { System.out.println(fruits[k]); } 我得到了这个错误 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

我在学习for循环,每当我做这个循环时

String[] fruits = {"Apple", "Banana", "Orange"};
        for (int k = fruits.length;k > 0; k--) {
            System.out.println(fruits[k]);
}
我得到了这个错误

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at helloworld.HelloWorld.main(HelloWorld.java:439)
Java Result: 1
BUILD SUCCESSFUL (total time: 10 seconds)
我不想对每个循环都做一个循环。
提前感谢

从0开始的Java数组索引。因此,如果数组中有3个对象,它们的索引是0、1和2

您已经设置了循环,使其从
k=3
开始,在随后的迭代中(如果达到了它们),它将有
k=2
然后
k=1

但它们与数组中的索引不匹配。特别是,当
k=3
时,数组中没有匹配项,这正是导致程序崩溃的原因

您需要更改循环的设置方式,使其迭代
k=2
,然后迭代
k=1
,然后迭代
k=0
。我可以建议做以下修改吗

for (int k = fruits.length - 1; k >= 0; k--) {

其他一切都可以保持不变。

从数组的长度开始,
int k=fruits.length
——这超出了数组允许的范围,因为数组是基于0的,从0变为长度-1。更重要的是,您需要学习使用和练习使用调试器