我认为 && 意味着两个条件都必须满足
实际上这意味着必须同时满足这两个条件。一旦一个条件失败,循环就结束。
正如其他人指出的那样,如果您希望满足任一条件,则必须使用或:
while (x < 10 || y < 20){
至于您的预期输出,仅靠一个循环是无法满足的。你需要一个额外的条件:
while (y < 20){ // keep going until y == 20
if(x < 10) { // only increase/print x while < 10
x += 1;
console.log('This is x: ', x)
}
// always print y - since its the bigger one
y += 1;
console.log('This is y: ', y)
}
这只是因为你知道哪个数字会变大(y > x)。如果您事先不知道自己的限制,但仍想要类似的结果,则必须使用如下代码:
int MAX_X = 10;
int MAX_Y = 20;
while (y < MAX_X || x < MAX_Y){ // keep going until both limits are reached
if(x < MAX_X) { // only increase/print x while < max_x
x += 1;
console.log('This is x: ', x)
}
if(y < MAX_Y) { // only increase/print y while < max_y
y += 1;
console.log('This is y: ', y)
}
}
这将一直持续到达到最大限制(不管它的 X 或 Y 是否更大),但停止打印/增加较小的数字