Пишу калькулятор имт на js
Постоянно показывает "недостаточная (дефицит) масса тела"
JS: https://pastebin.com/7NaZmefb
HTML: https://pastebin.com/NFPx03RG
Верстка, CSS, HTML, SVG
Почему неправильно работает код на javascript
Во первых, у тебя множество бессмысленных ошибочный сравнений. Если индекс равен 15.991, твой код выдаст '3 степень ожирения'. Т.к. проверяется <= 15.99 и >= 16. А попадание в интервал (15.99; 16) никак не проверяется. И так в пяти местах.
Надо:
Во вторых, такой индекс массы тела - откровенная глупость. Он не учитывает, что при одном росте у разных людей разная ширина плеч, разный диаметр грудной клетки, разная мышечная масса. И, соответственно, совершенно разный оптимальный вес.
Надо:
if (index < 16) {
alert('выраженный дефицит массы тела');
} else if (index < 18.5) {
alert('недостаточная (дефицит) масса тела');
} else if (index < 25) {
alert('норма');
} else if (index < 30) {
alert('избыточная масса тела (предожирение)');
} else if (index < 35) {
alert('1 степень ожирения');
} else if (index < 40) {
alert('2 степень ожирения');
} else {
alert('3 степень ожирения');
}
Во вторых, такой индекс массы тела - откровенная глупость. Он не учитывает, что при одном росте у разных людей разная ширина плеч, разный диаметр грудной клетки, разная мышечная масса. И, соответственно, совершенно разный оптимальный вес.
Пиши что-нибудь более простое.
Вот это
if (16 <= index <= 18.49)
в JS не сработает так как хотелось, нужно использовать
if (16 <= index && index<= 18.49)
if (16 <= index <= 18.49)
в JS не сработает так как хотелось, нужно использовать
if (16 <= index && index<= 18.49)
Проблема в условии, которое проверяет, попадает ли значение index в определенный диапазон. Вы пытаетесь использовать оператор <= для проверки двух условий, что является ошибкой. Вместо этого нужно использовать логический оператор && (и), чтобы проверить, что значение index больше или равно одному значению и меньше или равно другому.
Вот исправленный код, где изменены условия для else if:
Вот исправленный код, где изменены условия для else if:
let height = document.querySelector("#height");
let weight = document.querySelector("#weight");
let resultButton = document.querySelector("#getResult");
let index;
resultButton.addEventListener("click", () => {
index = Number(weight.value) / (Number(height.value) * Number(height.value));
if (index = 16 && index = 18.50 && index = 25 && index = 30 && index = 35 && index
Улыбнуло, ты в index записываешь: weight / height * height, в чем смысл? На первый взгляд не видно ошибки, разные числа вводил?
Похожие вопросы
- Что лучше учить JavaScript или HTML5/CSS?
- Зачем учить html,css,javascript если есть конструкторы сайтов?
- Запоминание изменений в исходном коде страницы
- Что делать после того, как написал html-код сайта?
- Есть мой сайт, он сделан на конструкторе. Могу я, как то скачать html код скачать, чтоб разместить его на любом хостинге?
- Как мне скрыть HTML код от чужих глаз?
- Редактирование информации на сайте без возни в коде
- Я слышал что можно создать веб сайт без языков программирования! тогда зачем учить HTML & CSS и еще JavaScript?
- Сколько зарабатывает человек который знает HTML,CSS,JAVASCRIPT Я знаю css,html,js и что мне со всем этим делать?
- Я за неделю изучил HTML и CSS, понятное дело не идеально и вот вопрос стоит ли начинать изучать javascript?