做一些考试修订。一个问题是,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++;
}
答案 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
,如果condition
为true
,则执行循环,并调用foo()
。
而在这里:
do{
foo();
}while(condition)
循环执行一次,调用foo()
,然后检查condition
以了解是否再次执行循环。
更多强>
答案 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);