尽管不满足条件,Do-While 循环仍会中断
Do-While loop breaks despite not fulfilling conditions
这可能是一个简单的修复,但是当我 运行 r1 和 r2 下面的循环有时不满足中断循环的条件但循环仍然中断并且 returns 值。例如,即使 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
都是数组。
您想在所有三个条件都为假时使用 ||
运算符来中断循环。
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 ||
当所有三个都是 false
.
时将 A || B || C
计算为 false
AND &&
将 A && B && C
计算为 false
当偶数为 false
.
这可能是一个简单的修复,但是当我 运行 r1 和 r2 下面的循环有时不满足中断循环的条件但循环仍然中断并且 returns 值。例如,即使 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
都是数组。
您想在所有三个条件都为假时使用 ||
运算符来中断循环。
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 ||
当所有三个都是 false
.
A || B || C
计算为 false
AND &&
将 A && B && C
计算为 false
当偶数为 false
.