I was working in a IMC calculator to exercise js. This calculator should shows the IMC and a message acording the result but, for some reason, it always shows the default message. const form = document.querySelector('#form'); form.addEventListener('submit',(e)=>{ e.preventDefault(); const weight = document.querySelector('#weight').value; const height = document.querySelector('#height').value; const bmi = (weight / (height **2)).toFixed(2); const value = document.querySelector('#value'); let description = ''; document.querySelector('#infos').classList.remove('hiden'); switch(bmi){ case bmi < 18.5: description = 'Cuidado! Você está abaixo do peso!'; break; case bmi >= 18.5 && bmi <= 25: description = "Você está no peso ideal!"; value.classList.remove('attention'); value.classList.add('normal'); break; case bmi > 25 && bmi <= 30: description = "Cuidado! Você está com sobrepeso!"; break; case bmi > 30 && bmi <= 35: description = "Cuidado! Você está com obesidade moderada!"; break; case bmi > 35 && bmi <= 40: description = "Cuidado! Você está com obesidade severa!"; break; case bmi > 40: description = "Cuidado! Você está com obesidade morbida!"; break; default: description = "verifique novamente"; break; } value.textContent = bmi.replace('.', ',') document.querySelector('#description').textContent =description ; });
我嘗試重寫,在像這樣的情況下使用括號(hào) > case (bmi > 25 && bmi <= 30) 并檢查了作業(yè)說明。 Algo seak 在 yt 中尋找一些使用 switch 的教程,但沒有找到。
您正在打開一個(gè)數(shù)字,但所有情況都評(píng)估為布爾值,因此它們可以匹配。您可以改為使用一系列 if
、else if
和 else
。
或者,改為打開 true
,這將導(dǎo)致選擇第一個(gè)計(jì)算結(jié)果為 true
的情況。
switch (true) { // ... }