-3

ネストされた for ループを使用して数値パターンを作成するコツをつかんでいます。このコードは、7 を超える数値を入力しない限り問題なく機能します。たとえば、7 を入力すると、次のようになります (スペースなし)。

        1

       212

      32123

     4321234

      32123

       212

        1

しかし、9 を入力すると、次のようになります。

                  1

                 212

                32123

               4321234

              543212345

               4321234

                32123

ダイヤモンドを完成させないために何が間違っていますか?

public void displayPatternVI (int lines) 
    {
        System.out.println("\n\tMy Own Pattern to be implemented\n");

        int columns = 1;
        int start = 0;
        int spaces = lines / 2;
        for (int i = 1; i <= 7; i++)
        {

            for (int j = 1; j <= spaces; j++)
            {
                System.out.print (" ");
            }


            if(i < lines/2+1)
            {
                start = i;
                spaces = spaces - 1;
            }
            else
            {
                start = (lines + 1 ) - i;
                spaces = spaces + 1;
            }



            for (int j = 1; j <= columns; j++)
            {
                int midColumn = columns / 2 + 1;
                System.out.print(start);
                if (j < midColumn)
                {
                    start--;
                }
                else
                {
                    start++;
                }

            }
            System.out.println();

            if(i<lines/2+1)
            {
                columns = columns + 2;
            }
            else
            {
                columns = columns - 2;
            }



        }




        System.out.println();

    }
4

1 に答える 1

1

(または、おそらく入力番号を保持する変数)に変更<= 7するのはどうですか<= 9

変化 :

for (int i = 1; i <= 7; i++)

for (int i = 1; i <= lines; i++)
于 2013-07-07T20:33:29.040 に答える