Java 我的for循环正在我的int数组中添加额外的元素,我不';我不明白为什么
所以我在做一个叫做“倍数数组”的小练习,我将一个数字相乘,并显示该数字的所有倍数,直到一个数组得到答案为止 例如:arrayOfMultiples(7,5)➞ [7,14,21,28,35] 我的问题是,我的数组中添加了一个值为0的额外元素,我不明白为什么。我试图理解为什么,但我需要帮助 这是我的代码:Java 我的for循环正在我的int数组中添加额外的元素,我不';我不明白为什么,java,arrays,for-loop,Java,Arrays,For Loop,所以我在做一个叫做“倍数数组”的小练习,我将一个数字相乘,并显示该数字的所有倍数,直到一个数组得到答案为止 例如:arrayOfMultiples(7,5)➞ [7,14,21,28,35] 我的问题是,我的数组中添加了一个值为0的额外元素,我不明白为什么。我试图理解为什么,但我需要帮助 这是我的代码: public static void main(String[] args) { //invoke method int[] test = arrayOfMultiples(7,
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;
}
publicstaticvoidmain(字符串[]args){
//调用方法
int[]测试=阵列f多重(7,6);
//将数组转换为字符串以打印整个内容
System.out.println(Arrays.toString(test));
}
公共静态int[]数组多重数(int num,int length){
//数组是用原始数字初始化的
int[]数组=新的int[num];
//变量以保持num相同
int add=num;
//用于将新倍数添加到阵列的循环
for(int i=0;i
我的输出是:[7,14,21,28,35,42,0]
谢谢大家! 您的问题是,对于数组的初始化,您使用num变量而不是length来指定数组的大小,并且由于int是一种前置数据类型,因此它不能为null,而是具有默认值0。 试试这个:
publicstaticvoidmain(字符串[]args){
//调用方法
int[]测试=阵列f多重(7,6);
//将数组转换为字符串以打印整个内容
System.out.println(Arrays.toString(test));
}
公共静态int[]数组多重数(int num,int length){
//数组是用原始数字初始化的
int[]数组=新的int[length];
//变量以保持num相同
int add=num;
//用于将新倍数添加到阵列的循环
for(int i=0;i
问题在于,您将数组的大小设置为必须找到倍数的数字。您需要使大小等于int length
。想象一下,如果num=1000
和length=10
,也就是说,您希望找到10
的倍数1000
。这样做的方式是,您将得到一个数组,其中990
元素为0
,这是在int[]
中的每个索引处指定的默认值
替换
int [] array = new int [num];
与
int[]数组=新的int[num]
我想您是想在这里使用另一个变量int[]array=newint[length]
。您正在将数组初始化为sizenum
而不是sizelength
。
int [] array = new int [length];