这是我编写的一些代码,但我无法理解:
public static void main(String[] args){
try {
int l = 14;
int hold[] = new int[1000];
int list [] = new int[l];
for(int i=0;i<=l;i++){
list[i] = hold[i];
}
for(int i=0;i<8;i++){
System.out.println(list[i]);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
我预计输出是8行0,但是是14(1行输出) 根据观察,输出取决于代码中的变量 l(为什么)? 我想请问一下为什么会出现这个问题呢?
最佳答案
您超出了数组列表的界限,这会产生异常。
就在这里:
for(int i=0;i<=l;i++){ <=====
list[i] = hold[i];
}
应该是l-1。
这是初学者常见的陷阱,所以不用担心,永远记住,在我们拥有的大多数语言中,每个数组或列表都是从 0 开始的。
关于java - System.out.println() 输出其他东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923633/