Javascript do while 循环不停止

标签 javascript html forms loops

我正在尝试创建一个计算来接受起始数字、结束数字和步骤编号,以按步骤值显示开始计数和结束计数之间的所有偶数。
我的循环逻辑似乎有问题,因为它不会停止并崩溃。

    <!DOCTYPE html>
    <html>
    <body>

    <h2>JFinding all even numbers</h2>

    <p>Please input a starting number, ending number and step number:</p>

    Starting Number: <input id="start">
    Ending Number: <input id="end">
    Step by Number: <input id="step">

    <button type="button" onclick="myFunction()">Submit</button>

    <p id="demo"></p>

    <script>
    function myFunction() {
        var start, end, step, text;
        var result = [];

        // Get the value of the start number with start var
        start = parseInt(document.getElementById("start").value);
        // Get the value of the end number with end var
        end = parseInt(document.getElementById("end").value);
        // Get the value of the step number with step var
        step = parseInt(document.getElementById("step").value);
        console.log('start', start);
        console.log('end', end);
        console.log('step', step);
        // If start, end, or step is Not a Number or step is not even or start is greater than end or step is greater than end or start and step are equal to end
        if (isNaN(start) || isNaN(end) || isNaN(step) || step % 2 !== 0 || start > end || step > end || step === end || start === end) {
            //display text for invalid input
            text = "Input not valid";
            //display text to html page
            document.getElementById("demo").innerHTML = text;
            //else create a loop to find even numbers
        } else { 
            if(start % 2 === 0){
            for(var i = start; i <= end; i += step){
                          result.push(i);
                }
            } else {
                start += 1;
                for(var i = start; i <= end; i += step){
                          result.push(i);
                }
            }
            //sent the result to the html page
            document.getElementById("demo").innerHTML = result;
    }
    console.log(result);
}
    </script>

    </body>
    </html> 

最佳答案

我认为你想做的是拥有

sum = start

循环之前。并且

sum += step

循环内

关于Javascript do while 循环不停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44229736/

相关文章:

asp.net-mvc - 在 ASP.NET MVC 中处理表单的正确方法是什么?

javascript - 缩放 HTML5 Canvas 图像

html 输入范围拇指平滑移动

c# - 回发后javascript更改清除

javascript - 验证 JavaScript 中的单选按钮

javascript - toDataURL 无法正常工作

javascript - 如何向上滑动当前div

python - 什么是最好的 Google App Engine blobstore 工作流程?

当用户关闭窗口中的选项卡时 JavaScript 发出警报

Javascript 深层复制(值)在数组中不起作用