0

整数を数字の配列に変換してから、それらの数字を順番に出力しようとしています。これは Java: How to Program の初期の問題であり、なぜそれを機能させることができないのか混乱しています。

これが私のクラスです:

public class AnyDigits {
    private int[] ns;

    public AnyDigits(int n){
        this.ns = new int[String.valueOf(n).length()];
        for(int i = 0, x = n; x > 0; i++, x = x / 10){
            this.ns[i] = x % 10;
        }
    }
    public void printDigits(){
        for(int i = this.ns.length - 1; i == 0; i--){
            System.out.printf("%d ", this.ns[i]);
        }
    }
}

メインメソッドに次のコードがあります。

AnyDigits digitsTest = new AnyDigits(42339);
digitsTest.printDigits();

コードの構成、スタイル、フォーマットに関するコメントも歓迎します。

どんな助けもありがたく受け取った!

4

2 に答える 2

4
for(int i = this.ns.length - 1; i == 0; i--){
    System.out.printf("%d ", this.ns[i]);
}

これは機能しません。 while を繰り返しています。でない限り、最初のループi==0iなることはありません。0this.ns.length == 1

あなたが必要

for(int i = this.ns.length - 1; i != 0; i--){
    System.out.printf("%d ", this.ns[i]);
}

また

for(int i = this.ns.length - 1; i >= 0; i--){
    System.out.printf("%d ", this.ns[i]);
}

とにかく、配列を印刷したい場合は、次のことができます

System.out.println(Arrays.toString(yourArray));
于 2013-08-30T12:31:41.453 に答える