所以我在做一个叫做“倍数数组”的小练习,我将一个数相乘,然后显示所有的倍数,直到一个数组得到答案。
例如: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]
谢谢您!
2条答案
按热度按时间ssgvzors1#
您的问题是,对于数组的初始化,您使用了num变量而不是length来指定数组的大小,并且由于int是一种基本数据类型,因此它不能为null,而是具有默认值0。试试这个:
bfhwhh0e2#
问题是,您将数组的大小设为必须求其倍数的数字。你需要使尺寸等于
int length
. 想象一下如果num=1000
长度=10
i、 你想找到10
的倍数1000
. 你所做的是,你会得到一个数组990
元素为0
它是一个表中每个索引的默认值int []
.代替
具有