【发布时间】:2021-07-27 06:32:35
【问题描述】:
我正在尝试使用 for 循环来处理 10 个带有 if 条件的问题。 continue 用于传递不符合条件的那个。
我的目的是随机提出 10 个问题方程,其结果应该是整数,但我的代码只给了我正确的条件和可变数量的问题。
当条件不满足时,它会通过当前方程,因此有时我最终只有 5 或 7 个问题,因为其他 5 或 3 个没有通过条件。
如何确保生成的随机方程的数量始终相同,这样如果不满足条件,该函数将重做随机数量的操作,最终得到 10 个问题?
我的代码是:
<body>
<p>this is testing for random number meet creteria</p>
<button class = "button" onclick = "myFunction()">try me</button>
<p id = "demo">Thisis where to display question</p>
<script>
function myFunction() {
var quiz = "";
var xNumber;
var yNumber;
var sign = ["+", "-", "*", "/"];
for (var i=0; i<10; i++) {
var xNumber = Math.floor(Math.random()*10);
var yNumber = Math.floor(Math.random()*10);
var randomSign = sign[Math.floor(Math.random()*sign.length)];
var result = eval(xNumber + randomSign + yNumber);
if (Number.isInteger(result)) {
quiz += xNumber + randomSign + yNumber + "<br>";
} else {
continue;
}
}
document.getElementById("demo").innerHTML = quiz;
}
</script>
【问题讨论】:
-
您的
for循环将准确执行 10 次,并且在每次迭代中,它将要么 生成一个方程式 或continue(没做什么)。你不想精确地迭代 10 次,你想迭代直到你有 10 个方程,这就是 John Tyner 的答案。另外,我建议您习惯使用let和const而不是var。 -
谢谢,我会听取您的建议并尝试不同的方式。欣赏它。
标签: javascript for-loop if-statement