简短的Javascript程序问题(erro输出) const HIGH_-AGE=70,MAX_-AGE=120,BABIE_-AGE=4,TEEN_-AGE=16; 函数main() { 变量年龄; 年龄=数字(提示('输入您的年龄:');//设置提示框询问用户的年龄 if(ageMAX_age)//如果用户的年龄低于“0”或高于“120” 警报('请输入介于0-120之间的年龄!');//输出:必须输入有效年龄范围内的年龄 else if(isNaN(年龄)=真年龄) 警报(“请输入有效条目”); 否则,如果((年龄>=高年龄)| |(年龄>=0&&age=儿童&&age&&age
),只需检查它是否是一个数字:简短的Javascript程序问题(erro输出) const HIGH_-AGE=70,MAX_-AGE=120,BABIE_-AGE=4,TEEN_-AGE=16; 函数main() { 变量年龄; 年龄=数字(提示('输入您的年龄:');//设置提示框询问用户的年龄 if(ageMAX_age)//如果用户的年龄低于“0”或高于“120” 警报('请输入介于0-120之间的年龄!');//输出:必须输入有效年龄范围内的年龄 else if(isNaN(年龄)=真年龄) 警报(“请输入有效条目”); 否则,如果((年龄>=高年龄)| |(年龄>=0&&age=儿童&&age&&age,javascript,if-statement,Javascript,If Statement,),只需检查它是否是一个数字: const HIGH_AGE = 70, MAX_AGE = 120, BABIE_AGE=4, TEEN_AGE=16; function main () { var age; age = Number(prompt('Enter your age:')); //set prompt box ask user's age if (age < BABIE_AGE || age > MAX_AGE)//if user use
const HIGH_AGE = 70, MAX_AGE = 120, BABIE_AGE=4, TEEN_AGE=16;
function main ()
{
var age;
age = Number(prompt('Enter your age:')); //set prompt box ask user's age
if (age < BABIE_AGE || age > MAX_AGE)//if user user's age are below "0" or above "120"
alert('Please Enter Age Within the Range between 0-120!');//output: must enter age in valid age range
else if (isNaN(age) == true || !age)
alert('please enter a valid entry');
else if ((age >= HIGH_AGE) || (age >= 0 && age <= BABIE_AGE))//if age between 0-4 or above 70
alert('You may travel for free');//output: they can travel for free
else if (age >= CHILDREN_AGE && age <= TEEN_AGE )//if user's age are under 16
alert('You may travel with a half price ticket');//output they can travel for half-price
else
alert('You must travel with a full price ticket'); //others all travel with full price
}
使用功能:
age = prompt('Enter your age:');
if (age == +age) alert("Please insert a number!");
else {
// do what you want
}
Number(prompt(“…”)
如果无法将输入解释为数字,则将返回NaN
值。一个快速而肮脏的解决方案(我唯一能快速想到的方法)是使用parseInt();
我希望这有帮助。我刚刚编辑了你的函数。你可以试试
if (isNaN(age)) {
// ... age is not valid number
}
以下是JSFIDLE的工作原理:
嘿,乔治,当我输入“1”时它的输出请输入一个数字,在哪里应该说你可以免费旅行谢谢Georgi,但是当我在其中输入0时,表示我的输入无效,1岁以下的婴儿将再次0检查。我修复了这个问题。非常感谢Georgi,我想我不允许使用while,因为讲座说只使用条件语句,所以iv添加了这个到我的代码,但我得到了相同的错误,当我输入0时,它给了我错误?你知道它有什么错误吗?正则表达式有一个小问题。再次检查代码。你允许使用递归吗?我们可以在循环时使用递归。改为使用
isNan
,如果你输入0,那么它将是false
。因此,你是我已经发布了你的简短计划。但是你的问题是什么?
const HIGH_AGE = 70, MAX_AGE = 120, BABIE_AGE=0, CHILDREN_AGE=4, TEEN_AGE=16;
function main () {
var age;
while(/^(?:[1-9]+(?:[0-9]+)?|0)$/.test((age = prompt('Enter your age:'))) == false) {
alert("You must enter number!");
}
age = Number(age);
if (age < BABIE_AGE || age > MAX_AGE)//if user's age are below "0" or above "120"
alert('Please enter age within the range between 0-120!');//output: must enter age in valid age range
else if ((age >= HIGH_AGE) || (age >= BABIE_AGE && age <= CHILDREN_AGE))//if age between 0-4 or above 70
alert('You may travel for free');//output: they can travel for free
else if (age >= CHILDREN_AGE && age <= TEEN_AGE )//if user's age are under 16
alert('You may travel with a half price ticket');//output they can travel for half-price
else
alert('You must travel with a full price ticket'); //others all travel with full price
}
while(/^(?:[1-9]+(?:[0-9]+)?|0)$/.test((age = prompt('Enter your age:'))) == false) {
alert("You must enter number!");
}