修改while循环以至少执行一次

时间:2014-01-06 15:45:25

标签: java loops

做一些考试修订。一个问题是,Modifiy代码使循环至少执行一次。

我的代码:

int x = 0;
while (x < 10) {
   if (x % 2 != 0) {
       System.out.println(x);
   }
   x++;
}

现在我知道while会循环而条件为真,我知道我不能删除x ++,因为这会给我无限的零。我想我会删除if语句和与之相关的大括号。

你同意吗?

int x = 0;
while (x < 10) {
    System.out.println(x);
    x++;
}

5 个答案:

答案 0 :(得分:2)

虽然这个特定循环实际上至少执行了一次甚至不变,但这不是while循环的属性。

如果不满足while循环中的条件,则循环永远不会执行。

do-while循环的工作方式几乎相同,只是在执行循环后评估条件,因此循环总是至少执行一次:

void Foo(bool someCondition)
{
    while (someCondition)
    {
        // code here is never executed if someCondition is FALSE
    }
}

另一方面:

void Foo(bool someCondition)
{
    do 
    {
        // code here is executed whatever the value of someCondition
    }
    while (someCondition) // but the loop is only executed *again* if someCondition is TRUE
}

答案 1 :(得分:0)

我不同意,这会改变循环的基本目的(将所有其他数字发送到stdout)。

查看转换为do / while循环。

答案 2 :(得分:0)

虽然你的解决方案在技术上已经回答了这个问题,但我认为这不是他们想要的(这不是你的错,在我看来这是一个措辞严厉的问题)。鉴于这是一个考试问题,我认为他们之后的问题是do while循环。

它与while循环的作用相同,只是在循环结束时检查while条件 - 这意味着它总是至少执行一次。


示例:

while(condition){
    foo();
}

此处首先检查condition,如果conditiontrue,则执行循环,并调用foo()

而在这里:

do{
    foo();
}while(condition)

循环执行一次,调用foo(),然后检查condition以了解是否再次执行循环。


更多

要进一步阅读,您可能需要查看whiledo whilefor循环上的thisthis教程。

答案 3 :(得分:-1)

int x = 0;
        while (x <10){
        System.out.println(x);
            x++;
        }

会工作

编辑:我认为其他评论也是权利,do / while循环将强制执行代码

答案 4 :(得分:-1)

var x = 0;
do {
    if (x % 2 != 0) System.out.println(x);
    x++;
} while (x < 10);