表麻烦。我需要帮助来制作它们

时间:2014-09-29 12:37:13

标签: java

我想根据用户输入将列表转到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();

3 个答案:

答案 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));
相关问题