簡體   English   中英

我在哪里做錯了? JS

[英]where am i doing wrong? JS

我是 Javascript 的新手,我只是想學習功能,這有點難,但我盡力了:)。 我正在做一個 function 來計算 bmi 像這樣;

 let calculateWeight = parseFloat(prompt("Enter your weight", )) let calculateHeight = parseFloat(prompt("Enter your height?")) function calculateBmi(weight, height) { let bmi = weight / (height * height) if (bmi < 18.5) { console.log("You are underweight") } else if (bmi > 18.6) { console.log("You are normal weight") } else if (bmi > 25) { console.log("you are overweigh") } return bmi; } console.log(calculateBmi(calculateWeight, calculateHeight))

如果我輸入我的值 72 體重和 1.80 公斤,它說你是正常體重,是的,這是正確的,但是每當我輸入我的值 >25 時,它又說你是正常體重,我哪里做錯了?

但是每當我輸入我的值> 25它再次說你是正常體重

因為沒有大於25的值不滿足此條件:

} else if (bmi > 18.6) {

聽起來您只想要第一個和第三個條件,其他一切都是“正常的”:

if (bmi < 18.5) {
  console.log("You are underweight")
} else if (bmi > 25) {
  console.log("you are overweigh")
} else {
  console.log("You are normal weight")
}

開關中的每一步都按順序進行評估,第一個遇到的將執行。

在這種情況下,任何高於 18.6 的值都會影響您的第二種情況。 為了讓它通過第三種情況,你需要一個值的上限。

...
else if (bmi>18.6 && bmi <= 25){
...

您的 calculateBmi function 中只有一個小問題。

看,每當 Bmi 大於 25 時,else 中的第二個條件如果梯子得到滿足並且“你是正常體重”就會打印在控制台中。

如下所示修復條件,您的問題將得到修復。

 let calculateWeight = parseFloat(prompt("Enter your weight")) let calculateHeight = parseFloat(prompt("Enter your height?")) function calculateBmi (weight, height){ let bmi = weight / (height * height) if(bmi < 18.5){ console.log("You are underweight") }else if (bmi>18.6 && bmi<=25){ console.log("You are normal weight") }else if (bmi>25){ console.log("you are overweigh") } return bmi; } console.log(calculateBmi(calculateWeight, calculateHeight))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM