如何将 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 --;
}