0

わかりました 恥ずかしいです これを尋ねなければなりませんが、行き詰まっているので、ここに行きます 正しい方向に私を微調整してください. ネストされたループを使用してこれを作成する必要があります。

*
**
***
****
*****

これが私が思いついたものです。

int row,col; 
for(row = 5; row >= 1; row--)
{ 
    for (col = 0; col < 5 - row; col++)
        println("");

    for(col = 5; col >= row; col--)
        print("*");
}

それはほとんど機能しますが、各行の間にスペースを出力し、私の人生では理由を理解できません。

4

5 に答える 5

2

println("");そのステートメントをループするのではなく、ループの最後に1 つだけではないのはなぜですか? 星の行ごとに新しい行が 1 つだけ必要です。

于 2013-05-03T18:44:50.090 に答える
1

星の各行を印刷するために、内側のループを1つだけ使用したいと思います。次に、各行の最後に改行を出力します。

int row, col;
for(row = 1; row <= 5; row++) {
    for(col = 0; col < row; col++) {
        print("*");
    }
    println("");
}
于 2013-05-03T18:48:12.797 に答える
0

なぜあなたはこれをしないのですか:

for (int row = 0; row < 5; row++) {
        for (int col = 0; col <= row; col++) {
            System.out.print("*");
        }
        System.out.print("\n");
}
于 2013-05-03T18:48:48.570 に答える
0

なぜ単純化しないのですか?

int row, col;
for(row=0; row<5; row++) {
    for(col=0;col<=row;col++) {
        System.out.print("*");
    }
    System.out.println();
}

一度に 1 行ずつ印刷してから、行末を印刷します。


I/O 操作が 1 回だけの場合は、関数が適切なアプローチになる場合があります。

public String starStarcase(int rows) {
    int row, col;
    String str="";
    for(row = 0; row < rows; row++) {
        for(col = 0; col <= row; col++) {
            str += "*";
        }
        str += "\n";
    }
    return str;
}

結果を印刷するには:

System.out.println(starsStaircase(5));
于 2013-05-03T18:49:03.320 に答える