次のforループをwhileループに変換する方法を理解しようとしていますが、出力は元のループとかなり似ていますがスペースはありません。基本的に小さな*印を表示してXを画面に表示しています。それを書き直そうとすると、同じ量の*が得られますが、空白がないので、次の行に次の行が印刷されます。これは直線になります。forループをwhileループに書き直す
編集:私はj = MINを提案したように再割り当てしましたが、私に質問される質問はforをwhileループに変換し、if-else 1つのif-else-if-elseステートメントのみを持つステートメント
ここでは、元のです:
ここパブリッククラスプラクティス {
public static void main(String[] args)
{
final int MIN = 1;
final int MAX = 7;
int i;
int j;
for (i = MIN; i<=MAX; i++)
{
for (j = MIN; j<=MAX; j++)
{
if (i==j)
if (i == (MIN+MAX)/2)
System.out.print("o");
else
System.out.print("*");
else if (i+j == MIN+MAX)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
}
私の試みです:
public static void main(String[] args)
{
final int MIN = 1;
final int MAX = 7;
int i = MIN;
int j = MAX;
while (i <= MAX)
{
j = MIN;
while (j <= MAX)
{
if(i == j && i == (MIN+MAX)/2)
{
System.out.print('o');
}
else
{
System.out.print("*");
}
if (i + j == MIN + MAX)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
j++;
}
System.out.println();
i++;
}
}
}
あなたは何を試してみましたか?違いがどこで発生したのか正確に確認するためにコードをステップ実行しようとしましたか?これは少しの試行錯誤で把握するのは非常に難しいことではありません。 –
if文を組み合わせないでください。そのままそのまま残してください。 –