【发布时间】:2020-01-31 18:31:35
【问题描述】:
(Javascript) 我的目标是生成分配给 a、b 和 c 的 3 个随机数。我想一遍又一遍地这样做,直到 a b 和 c 都是相同的数字,同时还要跟踪它需要多少次尝试。但是,唯一的结果是我为调试添加的“错误”部分。关于我可能出错的地方有什么想法吗?
var a = Math.floor(Math.random() * 6) + 1;
var b = Math.floor(Math.random() * 6) + 1;
var c = Math.floor(Math.random() * 6) + 1;
var runs = 0;
function tripleNumbers() {
while(a!=b && c !=b) {
a = Math.floor(Math.random() * 6) + 1;
b = Math.floor(Math.random() * 6) + 1;
c = Math.floor(Math.random() * 6) + 1;
runs++;
}
if(a == b && a == c) {
document.write("A: "+a);
document.write("B: "+b);
document.write("C: "+c);
document.write("Total Runs: "+runs);
}
else {
document.write("Error");
}
}
tripleNumbers();
【问题讨论】:
-
如果
a == b,while循环将停止。但这并不能保证c == b。永远不会执行该逻辑检查。您很可能希望它成为 OR。 -
@Taplar 那不是反过来吗?如果我将其设为 OR,那么 while 循环结束只需要一个条件,不是吗?是否 AND 确保在退出循环之前需要满足 BOTH ?
-
不,如果将其设为 OR,则 while 循环至少需要一个条件才能继续。
-
@Taplar 它现在可以工作了,因为它是一个 OR。感谢您的帮助!
-
@taplar 是正确的,
while循环本质上是在说“继续重复运行这个东西while 以下是true”。跨度>
标签: javascript loops numbers