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条经验 获得超8个赞
你有几个问题,
将适当的参数传递给函数调用。
在提示之后移动
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
添加回答
举报
