javascript - 如何使用 continue 修复循环结果
问题描述
我正在尝试对for
带有 if 条件的 10 个问题使用循环。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>
解决方案
将循环更改为以获取所需项目数为条件。
var numQuestions = 10, counter = 0
while (counter < numQuestions) {
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>";
// increment your counter here since you've added another question
counter ++;
}
}