Java 为什么这个数组会显示错误消息(Eclipse)

Java 为什么这个数组会显示错误消息(Eclipse),java,arrays,eclipse,error-handling,Java,Arrays,Eclipse,Error Handling,这是输出: int[] myArray = new int[] {1,2,3,4,5,6,7,8,9,10}; for(int number : myArray) { System.out.println(myArray[number]); } 有什么问题吗?因为增强的for循环将编号设置为myArray中的每个值,而不是每个索引。(请注意,打印的第一个元素是2,即索引1处的元素。)增强的for循环或多或少等同于: 2 3 4 5 6 7 8 9 10 Except

这是输出:

int[] myArray = new int[] {1,2,3,4,5,6,7,8,9,10};        

for(int number : myArray) {
    System.out.println(myArray[number]);
}

有什么问题吗?

因为增强的
for
循环将
编号设置为
myArray
中的每个值,而不是每个索引。(请注意,打印的第一个元素是2,即索引1处的元素。)增强的
for
循环或多或少等同于:

2
3
4
5
6
7
8
9
10

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at javaPractice.selfAssignArrays.main(selfAssignArrays.java:10)
您要执行以下操作:

for (int number : myArray) {
    System.out.println(number);
}
这相当于:

for (int number : myArray) {
    System.out.println(number);
}

for(int i=0;i对于每次迭代,您从数组中获取数字,并将数字作为索引。这就是为什么会发生ArrayIndexOutOfBoundsException

System.out.println(myArray[1]);System.out.println(myArray[2]); System.out.println(myArray[3]);System.out.println(myArray[4]); System.out.println(myArray[5]);System.out.println(myArray[6]); System.out.println(myArray[7]);System.out.println(myArray[8]); System.out.println(myArray[9]);System.out.println(myArray[10])

明白了吗? 您应该从
System.out.println(myArray[0]);
开始,然后在
System.out.println(myArray[9]);

或者,只需将数字输出为
System.out.println(number);

您认为它的正确性是什么?myArray[number]
做什么?在每次迭代中
number
的每个值是什么?数组的基本索引是什么?不需要
“”+
System.out.println(number)
也会做同样的事情。是的,你是对的。在Android中,
setText()
是一个严格的字符串类型。我会编辑我的答案。
for (int number : myArray) {
    System.out.println(number);
}
for (int i=0; i<myArray.length; i++)  {
    int number = myArray[i];
    System.out.println(number);
}