为什么我的数组只保存我输入的最后一个数字?

时间:2016-09-25 18:56:34

标签: java arrays input

我的代码是:

int total = 10;
int[] myArray = new int [total];

System.out.println("Enter numbers.  To stop, enter 0.")

int numbers = input.nextInt();

while (numbers != 0) {
     for (int i = 0; i < total; i ++)
          myArray[i] = numbers;

     numbers = input.nextInt();
}

for (int i = 0; i < myArray.length; i++)
     System.out.print(myArray[i] + ", ") //This line only prints the last number I enter 10 times.

我希望能够用我输入的数字打印整个数组。例如:

我输入:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0

但我得到的结果是:10, 10, 10, 10, 10, 10, 10, 10, 10, 10

编辑:我不知道为什么我的问题被标记为重复?我试着在这个网站上的任何地方搜索类似的问题而且没有找到一个问题,这就是我问的原因。这不是这个网站的目的吗?

编辑2:很好。我知道它是怎么回事。我会将我的问题提交给其他一些更有帮助的网站。感谢您的&#34;服务&#34; Stack Exchange。

2 个答案:

答案 0 :(得分:1)

您的for循环每次都会重置阵列中的所有项目。我怀疑你是否打算这样做。

答案 1 :(得分:0)

你可以这样做:

  1. i循环之外声明while并使用0进行初始化。
  2. while循环条件更改为numbers != 0 && i < total
  3. 移除for循环中的while循环。
  4. 而是只需编写myArray[i] = numbers;i++;来替换for循环。
  5. 以下是代码:

    int numbers = input.nextInt();
    int i = 0;
    while (numbers != 0 && i < total) {
        myArray[i] = numbers;
        i++;
        numbers = input.nextInt();
    }
    

    Here您的代码正常运行。