javascript - 这个函数和条件语句输出有什么问题?
问题描述
我正在阅读一系列关于 JavaScript 的教程。其中一个让我在 JS 中构建一个 BMI 计算器,同时检查我的结果。它还提供了解决方案并进行了解释。就是这样:
function bmiCalculator(weight, height) {
var bmi = Math.round(weight / Math.pow(height, 2));
console.log("Your BMI is " + bmi);
return bmi;
}
var bmi = bmiCalculator(65, 1.8);
console.log(bmi);
这个想法是,如果我将值弹出到 bmiCalculator 的 var = bmi 行中,以在控制台中获得输出。它给了我 65 和 1.8 的尝试,告诉我我的输出应该是 20。好吧,它起作用了(万岁),我(想?)我了解那里发生了什么。
随后的一项任务要求我对其进行修改,使其包含条件语句并根据计算出的 BMI 输出一种“您体重不足/正常/超重”的消息。它给出了以下的起始代码块:
function bmiCalculator (weight, height) {
return interpretation;
}
问题是这节课没有后续。没有解决方案(或解释)。有一个“检查代码”选项,但它只是返回错误,我不确定出了什么问题。
我想出了这个代码块:
function bmiCalculator(weight, height) {
var bmi = Math.round(weight / Math.pow(height, 2));
return interpretation;
}
var interpretation = bmiCalculator(65, 1.8);
if (bmi <= 18.5) {
alert("Your BMI is " + bmi + " so you are underweight.");
}
if (bmi > 18.5 && bmi <= 24.9) {
alert("Your BMI is " + bmi + " so you have a normal weight.");
}
if (bmi > 24.9) {
alert("Your BMI is " + bmi + " so you are overweight.");
}
它没有给我使用的起始值,所以我只使用了前面示例中的 65 和 1.8。但它返回给我的错误包括:
Your solution is incorrect
bmiCalculator() should return underweight for 6, 2
Expected undefined to equal 'Your BMI is 15, so you are underweight.'.
好吧,如果我将 6,2 放入该计算中,我不会得到 15,我会得到 2(我通过原始 bmiCalculator 函数运行它作为测试。所以这对我来说没有意义。此外,还有给我的消息旁边的另一个注释:
ReferenceError: Can't find variable: bmi
不过,我认为我在函数中定义了 bmi 。是否应该以不同的方式定义?
无论如何,我想得到这个任务的解决方案,因为没有提供,所以我可以在继续之前理解我做错了什么。谁能告诉我正确的解决方案,以及我做错了什么,以便我从中学习?
解决方案
您只是与变量混合,应该是:
function bmiCalculator(weight, height) {
var interpretation = Math.round(weight / Math.pow(height, 2));
return interpretation;
}
var bmi = bmiCalculator(65, 1.8);
if (bmi <= 18.5) {
alert("Your BMI is " + bmi + " so you are underweight.");
}
if (bmi > 18.5 && bmi <= 24.9) {
alert("Your BMI is " + bmi + " so you have a normal weight.");
}
if (bmi > 24.9) {
alert("Your BMI is " + bmi + " so you are overweight.");
}
推荐阅读
- java - Java 字节码执行不理解 go 语句在字节码中的工作方式
- google-apps-script - 当列标题与字符串匹配并且该列中的单元格包含指定值时,显示选项卡中的行
- javascript - 如何使用 jquery 删除“阅读更多”?
- pandas - How do I merge and repeat population cells in a data frame with existing data frame?
- c - STM32 使用 CubeMX 和 STMStudio:'int main()' 不起作用
- xamarin.forms - ZXing 是否能够解码旧版本的 Data Matrix 条码?
- python - 在 PyQt5 GUI 中嵌入 Plotly-Dash 图:握手失败,SSL 错误
- angular - 在 Ionic/Angular 中使用 Google Charts 为 PieChart 动态创建数据表
- python - 如何按特定顺序将数据导出到 csv 文件
- python - Selenium .click() 用于 trulia.com 搜索按钮未单击