Javascript循环卡住了

时间:2016-11-21 00:07:36

标签: javascript

当我运行此脚本时,它会在提示用户输入第一个号码时停滞不前。它似乎不是在计算x。

function doMath() {
    for (var x = 1; x < 3; x = x + 1) {
        var var1;
        var var2;
        var var2;
        var num;
        if (x = 1) {
            var num = prompt("Enter first number please");
            var1 = parseInt(num)
        }
        else if (x = 2) {
            var num = prompt("Enter second number please");
            var2 = parseInt(num)
        }
        else {
            var num = prompt("Enter third number please");
            var3 = parseInt(num)
            return Math.min(var1, var2, var3);
        }
    }
}

3 个答案:

答案 0 :(得分:4)

见行:

if (x = 1)

您不是在检查x == 1,而是在进行分配x = 1。后者始终为true,这意味着始终满足条件,这就是您的代码不断提示用户的原因。 同样适用于其他条件。他们都是作业。希望这有帮助!

答案 1 :(得分:1)

您的代码存在一些问题:
- 在你的for循环x只会12看到:(x < 3)这意味着它永远不会返回结果
- 要检查if语句中的相等性,您需要=====而非=这是分配
- 您在循环的每次迭代中重新声明变量,从而丢失任何存储的信息 - 在for循环完成后返回

全部放在一起:

function doMath() {
    var var1;
    var var2;
    var var2;
    var num;
    for(var x =1; x <= 3; x++){ //use x++ instead of x = x + 1 (easier to read) 
        if (x == 1) { //fix here
           var num = prompt("Enter first number please");
           var1 = parseInt(num)
        } else if (x == 2) { //and here
           var num = prompt("Enter second number please");
           var2 = parseInt(num)
        } else {
           var num = prompt("Enter third number please");
           var3 = parseInt(num) 
        }
    }

    return Math.min(var1, var2, var3);
}

答案 2 :(得分:0)

您没有调用该函数而没有输出最终结果。

这是一个有效的解决方案。希望它有所帮助!

&#13;
&#13;
.stroke()
&#13;
&#13;
&#13;