【问题标题】:how to fixed the loop outcome with continue如何使用 continue 修复循环结果
【发布时间】: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 的答案。另外,我建议您习惯使用letconst 而不是var
  • 谢谢,我会听取您的建议并尝试不同的方式。欣赏它。

标签: javascript for-loop if-statement


【解决方案1】:

将循环更改为以获取所需项目数为条件。

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 ++;
            } 
        } 

【讨论】:

  • 感谢 John Tyner,它真的很有帮助,它解决了我的问题。
猜你喜欢
  • 2022-01-20
  • 2023-03-18
  • 2021-09-09
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多