javascript - 此函数未返回预期代码
问题描述
/* Task 3 */
//Dog feeder - 根据他们的体重和年龄,我们需要知道每天喂狗多少磅的食物!/* 使用下面的饥饿狗功能和喂食要求来执行以下操作:
- 调用下面的饥饿狗函数并传递一个以磅为单位的重量值
- 此外,将年龄值传递给饥饿狗(注意:如果狗是小狗,则年龄将为小数。例如:三个月 = 3/12 或 .25)
- 进行正确的计算并返回一天喂狗/小狗的生食磅数
记住:这个程序应该正确处理成年和小狗的年龄和体重
喂养要求:
1 岁及以上的成年犬 5 磅 - 体重的 5% 6 - 10 磅 - 体重的 4% 11 - 15 磅 - 体重的 3% > 15 磅 - 体重的 2%
1 岁以下的幼犬 2 - 4 个月 体重的 10% 4 - 7 个月 体重的 5% 7 - 12 个月 体重的 4%
注意:如果操作正确,15 磅的重量和 1 岁的年龄将返回 0.44999999999999996 */
function hungryDog(age,weight){
if (age >= 1){
if (weight <= 5){
let foodAmount = weight * .05;
}
else if (weight <= 10){
let foodAmount = weight * .04;
}
else if (weight <= 15) {
let foodAmount = weight * .03;
}
else if (weight > 15) {
let foodAmount = weight * .02;
}
}
else if (age < 1) {
if (age <= .33) {
let foodAmount = weight * .10;
}
else if (age <=.5833) {
let foodAmount = weight * .05;
}
else if (age < 1) {
let foodAmount = weight * .04;
}
}
return foodAmount;
}
console.log(hungryDog(1,15))
我不知道我在这里缺少什么。请帮忙!错误读取 foodAmount 未定义。
解决方案
您需要在顶部声明您的 foodAmount,以便您可以在某些 if-else 块中更新其值,然后在最后返回。按照您声明它的方式,foodAmount 仅在您的 if-else 块中可用,但在您尝试在函数结束时返回它时未定义
function hungryDog(age,weight){
let foodAmount;
if (age >= 1){
if (weight <= 5){
foodAmount = weight * .05;
}
else if (weight <= 10){
foodAmount = weight * .04;
}
else if (weight <= 15) {
foodAmount = weight * .03;
}
else if (weight > 15) {
foodAmount = weight * .02;
}
}
else if (age < 1) {
if (age <= .33) {
foodAmount = weight * .10;
}
else if (age <=.5833) {
foodAmount = weight * .05;
}
else if (age < 1) {
foodAmount = weight * .04;
}
}
return foodAmount;
}
推荐阅读
- node.js - Jasmine - 如何从规范覆盖范围中排除 node_modules
- python - 故障:在 EbxmlMessage 中指定的操作不存在
- r - 在 R 中创建“元数据”字段
- ionic-framework - 如何在使用 NavController 的 app.html 上使用 Ionic 3 组件?
- html - 为什么图像没有正确分离?
- android - 资源“attr/layout_anchorGravity”的重复值与配置“”
- android - 在 react native 中,accessibilityLabel 属性有什么作用?
- android - 检索 ro.product.cpu.abi 的设备属性时出错:
- c - scanf 未知数量的整数,如何结束循环?
- c# - 在不知道谁是父级的情况下从父级删除视图