提问人:Taha Attari 提问时间:2/26/2021 更新时间:2/26/2021 访问量:27
尽管不满足条件,但 Do-While 循环中断
Do-While loop breaks despite not fulfilling conditions
问:
这可能是一个简单的修复,但是当我运行 r1 和 r2 以下的循环时,有时不满足中断循环的条件,但循环仍然中断并返回值。例如,即使存在以下情况,循环也会中断Math.abs(r1-r2)<3
let r1
let r2
do{
r1 = Math.round(Math.random()*(elementsToSwap.length-1))
r2 = Math.round(Math.random()*(elementsToSwap.length-1))
}while(
(Math.abs(r1-r2)<3)
&&prev.includes(r1)
&&prev.includes(r2)
)
我做错了什么?
elementsToSwap
和都是数组。prev
答:
1赞
AHMED SAJJAD
2/26/2021
#1
当所有三个条件都为 false 时,您希望使用运算符来中断循环。||
let r1;
let r2;
do {
r1 = Math.round(Math.random()*(elementsToSwap.length-1))
r2 = Math.round(Math.random()*(elementsToSwap.length-1))
} while((Math.abs(r1-r2)<3) || prev.includes(r1) || prev.includes(r2))
OR 计算为当所有三个都为 时。||
A || B || C
false
false
AND 计算为偶数为 .&&
A && B && C
false
false
评论
&&
prev.includes(r1)
prev.includes(r2)
AND
A & B & C
OR ||
while (condition)
&&
&&
||