-2

ユーザー入力によって生成された数値の因数を表示するプログラムを作成しています。ループで反復される配列を使用しようとしています。メイン メソッドは、配列を運ぶメソッドを呼び出し、ユーザー入力に基づいてその出力も出力します。

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

このプログラムを実行すると、メモリアドレスが吐き出されます...

何かを標準出力に出力するにはSystem.out.print(something)、 orを使用しますSystem.out.println(something)somethingが参照型の場合、メソッドprintObject.toString()on を呼び出しますsomething。ほとんどの参照型ではこれで十分ですがtoString()、配列型のメソッドは配列の内部型名とその ID ハッシュを出力します。(メモリ アドレスのように見えますが、技術的にはそうではありません。)

したがって、配列を印刷するには、要素を繰り返し処理し、要素間にセパレーターを付けて一度に 1 つずつ印刷する必要があります。Arrays.toString()または、書式設定を行うライブラリ メソッド ( など) を使用します。

Javaでは、配列の個々の要素をループで反復処理し、それぞれを出力する方法は?

あなたがそれを説明したのと同じように。コードは自分で書きます。それはあなたが学ぶのに役立ちます。(そして、数字の間のセパレーターを忘れないでください!!)

于 2012-10-22T23:36:12.680 に答える
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 に答える