我想根据用户输入将列表转到n个数字。然后我想在每个地方放一个第二个数字并打印整个表格。至于测试我尝试了长度4和数字1,2,3,4,但我得到一个错误:ArrayIndexOutOfBounds。我希望它能打印1,2,3,4。
Scanner keyboard = new Scanner (System.in);
System.out.println("Whats the length of the table?");
int lengde = keyboard.nextInt();
int[] minTabell = new int[lengde];
for (int i =1; i <= lengde+ 1; i++) {
System.out.println((i) + (" give a number"));
minTabell[i] = keyboard.nextInt();
}
System.out.println(minTabell);
keyboard.close();
答案 0 :(得分:2)
Java数组中的索引从0开始,而for循环从1开始。所以,
for (int i =1; i <= lengde+ 1; i++) {
System.out.println((i) + (" give a number"));
minTabell[i] = keyboard.nextInt();
}
应该是
for (int i =0; i < lengde; i++) {
// ^ ^^^^^^^^
System.out.println((i+1) + (" give a number"));
// ^^^
minTabell[i] = keyboard.nextInt();
}
至于打印阵列的内容,我建议你使用
for (int i : minTabell)
System.out.println(i);
答案 1 :(得分:0)
在Java数组中,索引从0开始。第一个元素位于minTabel1 [0]。你的for循环从1运行到lengde + 1,这意味着你将尝试填充数组之外的位置。
答案 2 :(得分:0)
数组的第一个元素的索引为0.数组的最后一个有效索引是lengde-1
。
试试这个:
for (int i=0; i < lengde; i++) {
System.out.println((i) + (" give a number"));
minTabell[i] = keyboard.nextInt();
}
要打印数组,我建议如下:
System.out.println(Arrays.toString(minTabell));