簡體   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