我需要帮助弄清楚如何让用户输入不超过10的整数,然后将它们添加到数组并从数组中打印出来。下面的代码,运行时,会询问用户整数,然后永远运行,不起作用。我做错了什么?
public static void main(String[] args) {
Scanner input = new Scanner(System.in); // create a new scanner
System.out.print("Enter integers between 1 and 100\n ");
int[] nextNumber = new int[10];
int i = 0;
int number = input.nextInt();
while (i < nextNumber.length){
i++;
nextNumber[i] = number;
number = input.nextInt();
}
int a = 0;
while (a < nextNumber.length){
a++;
System.out.println(nextNumber[a]);
}
答案 0 :(得分:2)
对我而言,就像你增加索引太快了。您应该在循环的 end 处增加索引变量,而不是开头。
我建议您使用for循环,因为它们是为此而设计的:
Scanner input = new Scanner(System.in); // create a new scanner
System.out.print("Enter integers between 1 and 100\n ");
int[] nextNumber = new int[10];
for (int i = 0; i < nextNumber.length; i++){
nextNumber[i] = input.nextInt();
}
for (int a = 0; a < nextNumber.length; a++){
System.out.println(nextNumber[1]);
}
此外,虽然我没有在代码中更改它,但似乎你的最后一行应该是:
System.out.println(nextNumber[a]);
答案 1 :(得分:1)
在将值分配给数组后增加数组索引
while (i < nextNumber.length) {
number = input.nextInt();
nextNumber[i] = number;
i++;
}
同样适用于第二个循环
while (a < nextNumber.length) {
System.out.println(nextNumber[a]);
a++;
}
答案 2 :(得分:0)
问题1
更改
int i = 0;
int number = input.nextInt();
while (i < nextNumber.length){
i++; //here is one problem. you not assigning the value to nextNumber[0].
nextNumber[i] = number;
number = input.nextInt();
}
到
int i = 0;
while (i < nextNumber.length){
number = input.nextInt();
nextNumber[i] = number;
i++;
}
问题2
变化
int a = 0;
while (a < nextNumber.length){
a++; //here is one problem ..You never get nextNumber[0] value
System.out.println(nextNumber[a]);
}
到
int a = 0;
while (a < nextNumber.length){
System.out.println(nextNumber[a]);
a++;
}
答案 3 :(得分:0)
您可以按照以下方式轻松完成此操作。因为您知道最大迭代次数,所以更好地使用循环。
Scanner input = new Scanner(System.in); // create a new scanner
System.out.print("Enter integers between 1 and 100\n ");
int[] nextNumber = new int[10];
int i = 0;
while (i < nextNumber.length) nextNumber[i++] = input.nextInt();
int a = 0;
while (a < nextNumber.length) System.out.println(nextNumber[a++]);