-3

私はJavaの初心者です。私は Deitel と Deitel を使用して Java を学習しています。演習の質問の 1 つで、三角形を印刷する必要があります。質問は次のとおりです。

(三角形印刷プログラム) 次のパターンを上下に並べて表示するアプリケーションを書きなさい。for ループを使用してパターンを生成します。すべてのアスタリスク (*) は、フォームの 1 つのステートメントで印刷する必要がありSystem.out.print( '*' );ます。これにより、アスタリスクが横に並んで印刷されます。フォームのステートメントをSystem.out.println();使用して、次の行に移動できます。System.out.print( ' ' );` の形式のステートメントを使用して、最後の 2 つのパターンのスペースを表示できます。プログラムには、他の出力ステートメントがあってはなりません。

(a)   (b)        (c)   (d)
* ********** ********** *
** ********* ********* **
*** ******** ******** ***
**** ******* ******* ****
***** ****** ****** *****
****** ***** ***** ******
******* **** **** *******
******** *** *** ********
********* ** ** *********
********** * * **********

a を取得しましたが、b、c、d については助けが必要です。前もって感謝します!:)

PSこれが私のコードです:

public class p5_15
{
    public static void main( String[] args )
    {

        int line;
        int star;

        for( line = 1; line <= 10; line++ )
        {
            for( star = 1; star <= line; star++ )
            {
                System.out.print( "*" );
            }
            System.out.println();
        }
    }
} 
4

2 に答える 2

2

別の for ループにネストされた for ループを使用する必要があります。構文は次のようになります。

for(int i = 0; i < n; ++i)
    for(int j = 0; j < i; ++j)
       ...

描画したい三角形に応じて...、2 番目の for ループの初期化と条件だけでなく、置換された式で遊ぶ必要があります。

たとえば、(c) の最初の行 (i=0) では、j を 0 から開始して 9 まで増やします (つまり、印刷する星の数 - 1)。次の行 (i=1) では、j を 0 から開始して 8 まで増やします。すでにパターンに気付いているはずです。

于 2013-06-16T10:34:52.960 に答える