我遇到的问题是我的编译器声明10超出范围。但是,如果这是我设置的数组长度,怎么能超出界限呢?
public class InitArray {
public static void main ( String [] args){
int arrayLength = Integer.parseInt(args[10]); //set array length
int[] array = new int[arrayLength]; /make array
int length = args.length; //the array length to be put in for loop
System.out.printf("%s%8s\n", "Index", "Value");
for( int counter = 0; counter < length; counter++){
System.out.printf("%5d%8d\n", counter, array[counter]);
}
}
}
答案 0 :(得分:2)
如果未向程序传递11个参数,则会出现ArrayIndexOutOfBoundsException。您正在尝试获取args数组的索引10的整数值。
答案 1 :(得分:0)
它失败了什么线?在Integer.parseInt(args[10])
上?
是args.length == 11
吗?
在你的代码中:
- “length
”是传递给你的程序的参数数量(我估计至少11个......)
- “arraylength
”是第11个参数的值,它的值是多少?
您似乎在length
循环中交换了arraylength
和for