-2

我正在编写一个程序,该程序将显示用户输入生成的数字的因子。我正在尝试使用由循环迭代的数组。main 方法将调用携带数组的方法,并根据用户输入打印其输出。

package arrayCalculateFactors;

import java.util.Scanner;

public class ArrayFactors {

    public static void main(String[] args) {
        int num = 0;
        int[] factorOutput = CalculateFactors(num); // Call method containing
                                                    // array.
        System.out.println("The factors of your number are " + factorOutput);
    }

    public static int[] CalculateFactors(int num) {
        Scanner numInitial = new Scanner(System.in);
        System.out.println("Please enter a number.");
        int numInput = numInitial.nextInt();
        int[] Factors;
        Factors = new int[18];
        for (int i = 1; i <= numInput / 2; i++)
            if (numInput % i == 0) {

            }
        return Factors;

    }
} // End class

当我运行这个程序时,它会吐出内存地址,而不是因子(输入 10 将打印 1、2、5、10)。如何修改循环以迭代数组的每个元素?提前致谢。

4

3 回答 3

1

您将不得不遍历数组的每个元素并单独打印。祝你好运。

于 2012-10-22T23:31:46.757 回答
0

使用 for 语句打印数组:

System.out.println("Your factor outputs are: " + factorOutput[0]);
for (int i = 1; i < factorOutput.length; i++)
    System.out.println(factorOutput[i]);

编辑:这只是一个示例,假设它至少有 1 个项目,它将打印数组。*

于 2012-10-22T23:34:38.583 回答
0

当我运行这个程序时,它会吐出内存地址......

要将某些内容打印到标准输出,请使用System.out.print(something)System.out.println(something)。如果something是引用类型,则该方法print调用Object.toString(). something对于大多数引用类型就足够了,但是toString()数组类型的方法会打印出数组的内部类型名称及其标识哈希。(它看起来像一个内存地址......但从技术上讲它不是。)

所以,要打印一个数组,你需要遍历元素,一次打印一个,元素之间有一个分隔符。或者使用为您进行格式化的库方法(例如Arrays.toString())。

在 Java 中,如何使用循环迭代数组的各个元素并打印每个元素?

正如你所描述的那样。自己写代码。它将帮助您学习。(并且不要忘记数字之间的分隔符!!)

于 2012-10-22T23:36:12.680 回答