【发布时间】:2016-10-21 00:27:05
【问题描述】:
我试图弄清楚如何将以下 for 循环转换为 while 循环,我非常接近,因为输出与原始循环非常相似,但缺少空格。基本上它是通过显示小 * 符号在屏幕上打印一个 X。在我尝试重写它时,我得到了相同数量的 * 但没有空格,所以它在下一行打印下一个 *,这使它成为一条直线。
编辑:我已经按照建议重新分配了 j = MIN,但我也忘了提到,问我的问题是我必须将 for 转换为 while 循环,并替换一系列 if-else 语句只有一个 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 语句.. 保持原样