使用用户输入打印数组。返回第一个值为零?

时间:2017-04-19 01:45:51

标签: java arrays user-input

我不完全确定我做了什么,但我的目标是接受用户的10个号码并将它们存储到一个数组中。然后我可以按顺序打印出来。我相信我已经完成了,除了第一个值在输出中默认为零,我不知道如何解决这个问题。有什么帮助吗?

{{skygear.currentUser.id}}

2 个答案:

答案 0 :(得分:2)

您的数组的大小应该设置为10(并且您的循环测试也应该是10,或者更好 - 使用数组length)。你应该使用大括号,它有助于防止细微的错误。我认为没有理由丢弃第一个int。把它们放在一起就像,

int[] a = new int[10];
Scanner input = new Scanner(System.in);
System.out.println("Please enter ten numbers: ");
for (int j = 0; j < a.length; j++) {
    a[j] = input.nextInt();
}
System.out.println("Your number list is: ");
System.out.println(Arrays.toString(a));

答案 1 :(得分:2)

您已定义了9元素数组,而不是10

改变这个:

int[] a = new int[9];

到此:

int[] a = new int[10];

另外,改变一下:

for(int j = 0; j < 9; j++)

到此:

for(int j = 0; j < a.length; j++)

最后但并非最不重要的是,这两个陈述不应该在循环内:

System.out.println("Your number list is: ");
System.out.println(Arrays.toString(a));

将它们放在循环之外。

for (int j = 0; j < a.length; j++) {
     a[j] = input.nextInt();
}

System.out.println("Your number list is:");
System.out.println(Arrays.toString(a));