3 回答
TA贡献1801条经验 获得超8个赞
主要问题是haveDog == yes& haveDog == no。这里yes&no是字符串。所以不得不比较喜欢'haveDog === 'yes'。没用===。其次humanAge,仅当用户键入时才计算,yes否则它将undefined
function dogHuman(yes, no) {
var haveDog = prompt("Do you have a dog? " + "yes" + " or " + "no");
if (haveDog === 'yes') {
var dogAge = prompt("How old is your dog? ");
var humanAge = ((dogAge - 2) * 4) + 21;
alert("If your dog were human, it would be " + humanAge + " years old");
} else {
alert("Thank you for you attention");
}
}
dogHuman();
TA贡献1859条经验 获得超6个赞
我不确定问题是什么,所以我将回顾一下我注意到的所有内容:
dogHuman
在没有任何参数的情况下调用,并且查看您的代码,它可能不应该有任何参数。Javascript(事实上,大多数语言)按顺序做事,所以
var humanAge = ((dogAge - 2) * 4) + 21;
应该dogAge
首先确定。既然
haveDog
是拿一个prompt
,你可能想比较haveDog
而"yes"
不是仅仅yes
。"Do you have a dog? " + "yes" + " or " + "no"
可以重写为"Do you have a dog? yes or no"
变量设置一次;每次运行它们时,它们都不会重新运行您设置的值;这种误解很常见,这也是我认为早期humanAge
定义的来源。
TA贡献2039条经验 获得超7个赞
你有几个问题,
将适当的参数传递给函数调用。
在提示之后移动
humanAge
分配dogAge
,因为这需要首先发生。确保不要引用你的变量
function dogHuman(yes, no) {
var haveDog = prompt("Do you have a dog? " + yes + " or " + no);
if (haveDog === yes) {
var dogAge = prompt("How old is your dog? ");
var humanAge = ((dogAge - 2) * 4) + 21;
alert("If your dog were human, it would be " + humanAge + " years old");
dogHuman(yes, no); // Recursion
} else {
alert("Thank you for you attention");
}
}
dogHuman('yes', 'no'); // Pass your parameters into the call
添加回答
举报