如何将 FOR 转换为 WHILE?
How to convert FOR to WHILE?
我只想将此 "for-loop" 转换为 "while-loop"?
我都试过了,还是不行。
For 循环:
for(int k = 3; k > 0; k--)
{
if(k % 2 == 0)
continue;
println(k);
}
我试过了:
int k = 3;
while(k > 0)
{
if (k % 2 == 0){
continue;
}
k--;
println(k);
}
但是控制台显示不同的值?你能帮帮我吗?
您必须在循环末尾和 continue
语句之前更改控制变量 k
。就在再次评估循环的条件表达式之前:
int k = 3;
while(k > 0)
{
if (k % 2 == 0) {
k --; // <--- add
continue;
}
// k--; <--- remove
println(k);
k --; // <--- add
}
注意,一个for
循环由一个初始化语句、一个条件表达式和一个iteration_expression.
如果for
循环语句必须表示为while
循环语句,那么init-statement必须在循环之前完成,条件表达式 可重复用于 while
循环中的条件,并且 迭代表达式 必须在 while
循环中最后完成.此外,必须在 while
循环中的每个 continue
语句之前完成 迭代表达式 表达式。
如果删除continue
语句,在循环结束时执行一次迭代表达式就足够了:
int k = 3;
while(k > 0)
{
if (k % 2 != 0) {
println(k);
}
k --;
}
我只想将此 "for-loop" 转换为 "while-loop"?
我都试过了,还是不行。
For 循环:
for(int k = 3; k > 0; k--)
{
if(k % 2 == 0)
continue;
println(k);
}
我试过了:
int k = 3;
while(k > 0)
{
if (k % 2 == 0){
continue;
}
k--;
println(k);
}
但是控制台显示不同的值?你能帮帮我吗?
您必须在循环末尾和 continue
语句之前更改控制变量 k
。就在再次评估循环的条件表达式之前:
int k = 3;
while(k > 0)
{
if (k % 2 == 0) {
k --; // <--- add
continue;
}
// k--; <--- remove
println(k);
k --; // <--- add
}
注意,一个for
循环由一个初始化语句、一个条件表达式和一个iteration_expression.
如果for
循环语句必须表示为while
循环语句,那么init-statement必须在循环之前完成,条件表达式 可重复用于 while
循环中的条件,并且 迭代表达式 必须在 while
循环中最后完成.此外,必须在 while
循环中的每个 continue
语句之前完成 迭代表达式 表达式。
如果删除continue
语句,在循环结束时执行一次迭代表达式就足够了:
int k = 3;
while(k > 0)
{
if (k % 2 != 0) {
println(k);
}
k --;
}