-2

出力が 3 の後に改行されるのはなぜですか? このような:

9

8 7

6 5 4

3

2 1

任意の数値を入力すると、常に 3 の後に新しい行が入力されます。9 を入力すると、ターゲット出力は次のようになります。

9

8 7

6 5 4

3 2 1 0

3 の後に新しい行に入る理由を教えてください。

public class TriangleWithInput {

/**
 * @param args
 */
@SuppressWarnings("resource")
public static void main(String[] args) {
    // TODO Auto-generated method stub

    Scanner sc = new Scanner(System.in);

    System.out.print("Enter a number: ");
    int input = sc.nextInt();

    while (input >= 0) {
        int c = 1;
        while ( c <= input) {
            int r = 1;
            while (r <= c) {
                System.out.print(input + " ");
                input--;
                r++;
            }
            System.out.println();
            c++;
        }
    }
}

}

4

1 に答える 1

5

ネストされたループが多すぎるようです。テストのために新しい行を取得していますc <= inputinputが 3 と に達すると、c >= 3改行しcて 1 にリセットします。

私はあなたのループを次のように書きます:

for (int r = 1; input >= 0; ++r) {
    for (int c = 1; c <= r && input >= 0; ++c, --input) {
        System.out.print(input + " ");
    }
    System.out.println();
}
于 2012-11-01T18:32:37.450 に答える