【问题标题】:extra element being added in my int array by my for loop, I don't understand why我的 for 循环在我的 int 数组中添加了额外的元素,我不明白为什么
【发布时间】:2020-11-17 22:22:13
【问题描述】:

所以我正在做一个名为“倍数数组”的小练习,我将一个数字相乘并显示该数字的所有倍数,直到一个数组得出答案。

例如:arrayOfMultiples(7, 5) ➞ [7, 14, 21, 28, 35]。

我的问题是我的数组中添加了一个值为 0 的附加元素,但我不明白为什么。我试图了解原因,但我需要帮助!

这是我的代码:

public static void main(String[] args) {
    //invoke method
    int[] test = arrayOfMultiples(7, 6);
    //convert array to string to print entire thing
    System.out.println(Arrays.toString(test));
}

public static int[] arrayOfMultiples(int num, int length) {
    //array is initalised with original number
    int [] array = new int [num];
    //variable to keep num the same
    int add = num;
    // loop for adding the new multiples to the array
    for (int i = 0; i < length; i++) {
        array[i] = num;
        num += add;
    }
    return array;
}

我的输出是:[7, 14, 21, 28, 35, 42, 0]

谢谢!

【问题讨论】:

  • int [] array = new int [num]; 我想你的意思是在这里使用你的其他变量int [] array = new int [length];
  • 您将数组初始化为大小num,而不是大小length

标签: java arrays for-loop


【解决方案1】:

您的问题是,对于数组的初始化,您使用 num 变量而不是 length 来指定数组的大小,并且由于 int 是一种可预测的数据类型,它不能为空,而是默认值为 0。 试试这个:

public static void main(String[] args) {
    //invoke method
    int[] test = arrayOfMultiples(7, 6);
    //convert array to string to print entire thing
    System.out.println(Arrays.toString(test));
}

public static int[] arrayOfMultiples(int num, int length) {
    //array is initalised with original number
    int [] array = new int [length];
    //variable to keep num the same
    int add = num;
    // loop for adding the new multiples to the array
    for (int i = 0; i < length; i++) {
        array[i] = num;
        num += add;
    }
    return array;
}

【讨论】:

    【解决方案2】:

    问题是您将数组的大小设置为您必须找到倍数的数字。您需要使大小等于int length。想象一下,如果 num = 1000 和 length = 10,即你想找到 10 的倍数 1000。您所做的方式是,您将获得一个包含990 元素的数组0,这是int [] 中每个索引分配的默认值。

    替换

    int [] array = new int [num];
    

    int [] array = new int [length];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多