有人可以帮助我将我的代码从while循环更改为for循环吗?感谢
while(shape < grid.getHt())
{
int lv = x;
int lvv = y;
int lvvv = shape;
for(; lo <= hi; lo++)
grid.setColor(lv, lvvv, Color.red);
shape++;
x++;
y--;
}
}
答案 0 :(得分:1)
我已编辑了您的代码,以使其更具可读性。在这之后,一些问题变得明显。
Java中For循环的格式是
for(initialization; termination; increment)
{
//statement(s)
}
---------- ----------或
for(initialization; termination; increment)
single.statement(goes_here);
最好使用第一个示例,以提高代码的可读性和维护性。
其中(在大多数情况下)initialization
产生并分配一个新变量,termination
是exit子句,increment
是在循环的每次迭代中执行的动作,通常是变化的在initialization
中创建或设置的变量。
在您的情况下,您的代码段中有一个额外的结束括号,如果未与另一个括号正确配对,将导致编译器错误。你还分配了3个未使用的int
,我不明白为什么这样做,它实际上不会影响编译 - 只是稍微减慢了程序的速度。
现在,有关如何将此while
循环转换为for
循环:
while
循环使用以下格式:
while (expression)
{
statement(s)
}
------ ------或
while(expression)
single.statement(goes_here);
最好使用第一个示例,以提高代码的可读性和维护性。
要将while
循环转换为for
循环,您需要将expression
转换为termination
子句。由于它们几乎完全相反(对于termination
上的循环退出,而expression
上的循环继续,所以您需要做的就是not
它并进行优化你的申请),那部分很容易。然后,您还需要添加两个字段 - initialization
和increment
。
对于initialization
语句,您只是将变量初始化为值。虽然在某些应用程序中可以跳过此操作,但您可能希望将变量声明为“计数器”变量,这允许您对所有其他变量进行操作,并且仍然具有已运行的迭代次数的精确计数。大多数情况下,这将采用表达式int i = 0
的形式,尽管每个应用程序可能会有所不同。
最后,您需要设置increment
语句。这个很简单 - 确定每次迭代需要更改的内容并进行更改。常见应用程序将计数器递增1,但每个应用程序都不同。您通常会在终止语句中识别要比较的变量,并将其调整为接近终止。如果你想要终止,你需要variable -= value
行。如果您向终止声明提升,则需要variable += value
行。或者在其他情况下,代码本身会更改您的变量,并且您希望更改某些任意元素。