ネストされた 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();
}