怎么把FOR转换成WHILE?

时间:2019-04-17 03:44:17

标签: java processing

我只想将此“ for-loop”转换为“ while-loop”?

我尝试了所有,但没有任何效果。

对于循环:

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);
}

但是控制台显示不同的值吗?你能帮我吗?

1 个答案:

答案 0 :(得分:1)

您必须在循环结束时且在k语句之前更改控制变量continue。在再次对循环的条件表达式求值之前:

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 ,即 condition expression < / em>可以重新用于while循环中的条件,并且 iteration表达式必须在while循环中最后完成。此外,必须在continue循环中的每个while语句之前完成 iteration表达式表达式。

如果消除了continue语句,则在循环末尾执行一次 iteration表达式就足够了:

int k = 3;
while(k > 0)
{
    if (k % 2 != 0) {
        println(k);
    }
    k --;
}