如何解决尽管不满足条件,但 Do-While 循环中断
这可能是一个简单的修复,但是当我在 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
都是数组。
解决方法
当三个条件都为假时,您想使用 ||
运算符来中断循环。
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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。