0

この出力を得るために、私の本の 1 つで演習を行いました。ネストされたループと基本的な Java を使用することになっています。ここでは出力をフォーマットできませんでしたが、以下のコードは正しい出力を生成します。正しい出力を印刷するようにしましたが、主に * とスペースに関するループで非常に冗長であるように感じます。これを行うためのより良い方法があれば共有してください!

private static void printDesign(){
    int astrickStopper = 1;
    int slashStopper = 1;
    for (int lines = 1; lines <= 7; lines++) {
        for (int firstAstrick = 6; firstAstrick >= astrickStopper; firstAstrick--) {
            System.out.print("*");
        }
        for (int spaces = 1; spaces <= slashStopper; spaces++) {
            System.out.print(" ");
        }
        for (int forwardSlash = 6; forwardSlash >= slashStopper; forwardSlash--) {
            System.out.print("//");
        }
        for (int backSlash = 1; backSlash < slashStopper ; backSlash++) {
            System.out.print("\\\\");
        }
        for (int spaces = 1; spaces <= slashStopper; spaces++) {
            System.out.print(" ");
        }
        for (int secondAstrick = 6; secondAstrick >= astrickStopper; secondAstrick--) {
            System.out.print("*");
        }
        astrickStopper = astrickStopper + 1;
        slashStopper = slashStopper + 1;
        System.out.println();
    }
}
4

1 に答える 1

0

あなたが書いたコードは、問題の説明を満たしているようです。内側のループを、特定の文字シーケンスを特定の回数出力する関数に移動すると、6 つの内側ループではなく、関数を 6 回呼び出すだけになります。

public void printChars(int count, String chars) {
    for (int i = 0; i < count; i++) {
        System.out.print(chars);
    }
}
于 2013-09-20T04:40:06.213 に答える