3

Javaでループを使用して、次のように見える右側の三角形を作成しようとしています:

     +
    /|
   / |
  /  |
 /   |
+----+

プログラムは、三角形の各辺のサイズを決定するために、引数を int として必要としていました。これまでの私のコードは次のとおりです。

public static void main(String[] args) {
    int x = Integer.parseInt(args[0]);
        for (int i = 0; i <= x; i++) {
            for (int j = x; j >= i; j--) {
                System.out.print(" ");
            }
            System.out.println("/");
        }

    System.out.print("+");
    for (int j = 0; j < x; j++) {
        System.out.print("-");
    }
    System.out.print("+");
}

で、ここまでの結果がこれ

     /
    /
   /
  /
 +---+

では、これにどのようにアプローチすればよいでしょうか。for ループのいくつかの組み合わせを試しましたが、これまでのところ、実際の三角形ではなく、ごちゃごちゃした形状が出力されることがよくあります。

4

3 に答える 3

2

あなたはほとんどそこにいます: を出力するネストされたループで'/'、 に置き換えprintlnますprintx-jスペースを印刷する 2 番目のループを追加してから、 を印刷します|+最後に、最初のループに入る前に印刷するステートメントを追加します。それはそれだ!

コードを最適化するには、ヘルパー メソッドを作成することを検討してください。

void printN(String str, int numTimes) {
    // Prints numTimes copies of str
}

このようにして、いくつかのループをprintN. 例えば、

for (int j = x; j >= i; j--) {
    System.out.print(" ");
}

になるだろう

printN(" ", x-i);
于 2013-05-09T03:12:40.790 に答える