繁体   English   中英

JavaScript循环卡住了

[英]Javascript loop stuck

当我运行此脚本时,它会提示用户输入第一个数字。 似乎不算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);
        }
    }
}

见行:

if (x = 1)

您不是在检查x == 1,而是在分配x = 1。 后者始终为true,这意味着始终满足条件,这就是为什么您的代码不断提示用户的原因。 对于其他条件类似。 它们都是作业。 希望这可以帮助!

您的代码存在一些问题:
-在for循环中, x只会看到12 :( x < 3 )这意味着它将永远不会返回结果
-要在if语句中检查是否相等,您需要===== not =这是分配
-您在循环的每次迭代中都会重新声明变量,从而丢失所有存储的信息
-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);
}

您没有在调用该函数,也没有输出最终结果。

这是一个可行的解决方案。 希望能帮助到你!

 function doMath() { var var1; 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); } document.write(doMath()); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM