用Java添加数组和打印数组

时间:2013-10-22 03:19:22

标签: java arrays

我需要帮助弄清楚如何让用户输入不超过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]);   
    }

4 个答案:

答案 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++]);