虽然循环多个条件不会同时检查这两个条件
While loop multiple conditions don't check both conditions
var x = 0;
var y = 0;
while (x < 10 && y < 20){
x += 1;
y += 1;
console.log('This is x: ', x)
console.log('This is y: ', y)
}
我想我不明白循环中的多个条件是如何工作的。我希望代码要做的是继续循环,直到 x 大于 10 并且 y 大于 20,但是一旦 x 大于 10,循环就会停止。我认为&&意味着必须满足这两个条件。
我认为&&意味着必须满足这两个条件
确实如此。 x
不再小于 10,因此不满足条件。 您需要一个 or,其中任一条件必须满足:
while (x < 10 || y < 20){
尽管在这种简单的情况下,循环仅由y
变量控制,因为它们以相同的速率递增。
如果你想要两个条件(x 小于 10,y 也小于 20):
while (x < 10 && y < 20){
在您的示例中 x = 11,因此不满足此条件。
但是,如果您想要其中任一条件(x 小于 10 或 y 小于 20):
while (x < 10 || y < 20){
你想要x < 10 || y < 20
,或者!(x >= 10 && y >= 20)
从你的问题文本来看你可能会发现更清楚。
但请注意,x
将超过 10 点。
我认为&&意味着必须满足这两个条件
实际上,这意味着必须同时满足这两个条件。一旦一个条件失败,循环就会结束。
正如其他人指出的那样,如果您希望满足任一条件,则必须使用 或:
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 更大),但停止打印/增加较小的数字
condition1 && condition2
将条件1和2替换为它们各自的布尔值(True/False)。
在您的情况下,一旦 x 越过 10,表达式就变为
False && Condition2
总是False
(基本布尔代数)。
更正它
x<10 || y<10
- 为什么要对define.md和module.exports进行条件检查,以及条件何时通过
- 根据条件检查数据库结果
- javascript中的负数if else条件检查
- 这个Javascript条件检查是什么
- 用于多个条件检查的 JavaScript 语法
- 我们可以使用 onScroll 进行条件检查吗?
- 用户单击输入类型复选框时的条件检查
- JavaScript 赋值与条件检查中的代码效率和速度比较
- Jquery html() 在条件检查中
- 对 Javascript 中未定义的 .function 进行最小条件检查
- Javascript 多重或条件检查
- 检查嵌套对象是否被声明并且具有没有这么多条件检查的值
- 如何在JavaScript中的setInterval函数中添加条件检查
- 将变量数据类型解析为一个函数,该函数在JavaScript中包含对数据类型的条件检查
- 如何在创建新对象时应用条件检查并执行代码
- 如何在jquery中使用if条件检查动态值
- if语句条件检查!= "undefined"失败
- 为什么当条件检查变量变为0时while循环停止?
- IE条件检查
- Javascript:多层条件,使用"return false"停止以后的条件检查