私の Java クラスの演習の 1 つは、ネストされた for ループを使用してひし形を出力することです。この演習では、ネストされた for ループを使用しながら、最小限の出力を使用する必要があります。もう 1 つの規定は、各出力が単一のスペース、単一のアスタリスク、または単一の終了行ステートメントなどの 1 文字のみを出力できることです。
私はそれを終えましたが、それを行うためのより簡単な方法があるかどうか、または誰かが私のコードをクリーンアップするためのヒントを持っているかどうか疑問に思っていました. 必要以上に書いてしまったようです。どんな助けやヒントも大歓迎です。:)
最終結果は次のようになります。
これが私のコードです:
public class Diamond
{
public static void main(String args[])
{
int b = 11; // secondary asterisk loop counter
int ac = 2; // asterisk count
int sc = 5; // space count
int elc = 2; // end line count
int slc = 1; // space loop count
int sslc = 1; // secondary space loop count
for(int e = 1; e < elc && elc < 12;e++)
{
if(elc <= 6)
{
for(int a = 1; a < ac; a++)
{
for(;sc <= 5 && sc > 0; sc--)
{
System.out.print(" ");
}
System.out.print("*");
}
ac += 2;
sc = 5 - slc;
slc += 1;
}
else if (elc > 6)
{
ac -= 2;
sc = 1;
for (; b < ac ; b++)
{
for(;sc <= sslc && sc > -2; sc++)
{
System.out.print(" ");
}
System.out.print("*");
}
b = 1;
sslc += 1;
}
if(elc != 6)
{
System.out.println();
}
elc += 1;
}
}
}