2016-02-13 51 views
0

所以,我想弄清楚如何做到以下幾點:允許用戶輸入一個從1到10的值,而任何低於或超過該允許範圍的東西是不允許的。我想要做的是有效地告訴用戶他們沒有得到足夠的巧克力,或者他們獲得的巧克力太多,然後再次重新挑選他們。我不知道如何在JavaScript中做到這一點,所以我正在尋求幫助。這裏是我到目前爲止的代碼:Invalid input and reprompting

var numberOfPoundsOrdered; 
numberOfPoundsOrdered = prompt("How many lbs of chocolate would you like to order?"); 
while (numberOfPoundsOrdered < 1 || numberOfPoundsOrdered > 10) { 
     numberOfPoundsOrdered = prompt("How many lbs of chocolate would you like to order?"); 
} 

我是新來的JavaScript,所以請不要釘死我太多。如果可能,我希望在while循環中包含「錯誤消息」。有什麼建議?先謝謝你。

回答

1

var numberOfPoundsOrdered; 
 
while (true) { 
 
    // Make sure numberOfPoundsOrdered is number before the check. 
 
    numberOfPoundsOrdered = parseInt(prompt("How many lbs of chocolate would you like to order?"), 10); 
 
    
 
    
 
    if (numberOfPoundsOrdered < 1) { 
 
    // Do something if number too small. 
 
    console.log("Too less chocolate."); 
 
    } else if (numberOfPoundsOrdered >= 10) { 
 
    // Do something if number too large. 
 
    console.log("Too much chocolate."); 
 
    } else { 
 
    // Cond met, leave 
 
    break; 
 
    } 
 
}

或不同時:

var numberOfPoundsOrdered; 
var numValid = false; 
do { 
    // Make sure numberOfPoundsOrdered is number before the check. 
    numberOfPoundsOrdered = parseInt(prompt("How many lbs of chocolate would you like to order?"), 10); 

    if (numberOfPoundsOrdered < 1) { 
    // Do something if number too small. 
    console.log("Too less chocolate."); 
    } else if (numberOfPoundsOrdered >= 10) { 
    // Do something if number too large. 
    console.log("Too much chocolate."); 
    } else { 
    numValid = true; 
    } 
} while (!numValid); 
+1

或者使用'做... while'? – 2016-02-13 06:49:14

+0

是的,我會添加一個替代。 – fuyushimoya

+0

我也想到我可以將它改爲: while(numberOfPoundsOrdered <1 || numberOfPoundsOrdered> 10){numberOfPoundsOrdered = prompt(「你要麼太少或太多巧克力,所以請再試一次,多少磅巧克力你想訂購嗎?(1-10磅)「); } – MatthewSpire

相關問題