我正在尝试编写一个程序,该程序将读取用户输入的数字。
程序当前读取数字并使用while循环进行读取,检查它是在1到20之间。只要数字不在1到20之间,循环就应该继续。
我无法使用此功能,也无法计算用户的号码(我希望将其乘以50)。
我希望程序输出到屏幕上。
到目前为止,这是我的代码:
var choice;
var price = 50;
choice = parseInt(prompt("Please input number of days for your Bus tour",""));
while(choice < 1 && choice > 20){
alert("You cannot have a bus tour for less than 1 day or over 20 days!");
return true;
}
else if(choice > 1 && choice < 20){
alert("Your total price for your bus tour is "+(choice*price));
}
我在JavaScript上有点n00b,无法找到我想要的答案。任何有关这方面的帮助将不胜感激。谢谢。
答案 0 :(得分:1)
我会在这里使用do
循环,因为我们想要在任何情况下在开始时提示用户。因此,如果我们不首先进行有效性检查,那么它就更合乎逻辑了,但这是循环中的最后一件事。
接下来,我建议使用可以是true
或false
的标志变量,具体取决于用户的输入。这使代码更易于阅读,并有助于减少错误的可能性。
当用户在提示中点击“取消”时,我们还需要打破循环。
var choice = 0;
var price = 50;
var isValid = false;
do {
choice = prompt("Please input number of days for your Bus tour","");
if (choice === null) break; // user clicked "cancel"
choice = parseInt(choice);
isValid = choice >= 1 && choice <= 20;
if (isValid) {
alert("Your total price for your bus tour is "+(choice*price));
} else {
alert("You cannot have a bus tour for less than 1 day or over 20 days!");
}
} while ( !isValid );
答案 1 :(得分:-1)
以下是您问题的解决方案:
var choice;
var price = 50;
choice=parseInt(prompt("Please input number of days for your Bus tour",""));
if(choice < 1 || choice > 20){
alert("You cannot have a bus tour for less than 1 day or over 20 days!");
}else{
alert("Your total price for your bus tour is "+(choice*price));
}
如果其他条件足以解决此问题,则不需要使用while循环。