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);
}