Контролируем массу тела

  • 5
  • Недоступна
У Элли — истерика: ей кажется, что она толстая. Что дальше? Никаких выходов в свет, разве что с соседками на лавочку. Выкуп двух мест в самолёте. В лифте — постоянный перевес и стыд. Дно и разрушение. Мир тёмен, сер и вязок. Но постойте, не преувеличивает ли Элли? Напишем для неё программку, считающую индекс массы тела и успокоим её (или наоборот).
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (158)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Saturn
Уровень 9, Днепр, Украина
15 сентября, 11:06
При собственных расчетах результат 24,3. По тонкому льду мой путь лежит.
Елена
Уровень 19, Санкт-Петербург
4 сентября, 12:30
то чувство, когда решила задачу с первой попытки, наконец то)!
Igor Sholia
Уровень 7, Ужгород, Украина
16 мая, 12:32
"Ожирение: 30 или больше" - если индекс массы тела 30 или больше.--- обратите внимение на последнее условие
Marat Minnigaliev
Уровень 17
28 апреля, 01:54
Всего эту задачу решили 43968 учеников. Вроде б не сложная
Ryan Allen
Уровень 19, Санкт-Петербург
18 апреля, 08:42
А чем плоха такая реализация: public static class Body { public static void calculateMassIndex(double weight, double height) { Double index = weight / (height * height); if(index < 18.5){ System.out.println("Недовес: меньше чем 18.5"); }else if(index < 25){ System.out.println("Нормальный: между 18.5 и 25"); }else if(index < 30){ System.out.println("Избыточный вес: между 25 и 30"); }else{ System.out.println("Ожирение: 30 или больше"); } } } Зачем нужна дополнительная проверка в каждом "if / else if"? в случае если индекс ниже 18.5, "if" заканчивается выполнив первое условие, соответственно в первом "else if" можно указать только верхнюю границу (25). Я протестировал - работает корректно. Или я все же, где то ошибся?
ClementineKruczynski
Уровень 12, Москва, Россия
8 февраля, 19:05
почему-то компилятор ругается если для формулы
indexOfMass = weight / (height * height)
задать тип var
Егор Комаров
Уровень 8
24 февраля, 11:52
проверь тип переменной, должно быть double
31 января, 14:40
Замечание : вес в Ньютонах, масса тела в кг в системе СИ!!!
Иван
Уровень 10, Хабаровск, Россия
16 января, 05:41
Через if - ы с третьей попытки, банальная ошибка не поставил =, и ошибся со знаком < и >.
Dmitry Panchenko
Уровень 25, Москва, Россия
14 января, 09:24
Оптимальней было бы воспользоваться switch case https://javarush.ru/groups/posts/operator-switch-v-java
Innokentiu Shlenov
Уровень 8, Москва, Россия
20 апреля, 06:12
Дмитрий, а есть понимание как это сделать ? я тоже про него подумал, но чет не могу сообразить как реализовать
Maksim Volkov
Уровень 9
16 декабря 2020, 14:45
Задача достаточно простая, можно решить через if. Но где то уже было сказано что нужно стараться сделать запись более элегантной и короткой. Сделал через тернарный оператор. Сначала создаём переменную double ИМТ(индекс массы тела) в которую загоняем сразу результат работы формулы из задачи(Подставляем входные значения веса и роста). Потом делаем sout() и в скобках соута пишем условия по подобию в if'ах только для тернарника (условие ? вариант если условие True : вариант если условие False(Классический вариант)), для решения надо делать так: Sout (Условие1 ? вариант если условие true : если False то Условие2 ? True : если False то Условие3 ? True : False все остальные варианты если число не укладывается в нужный диапазон);
Ilia Fesenko
Уровень 22
24 декабря 2020, 12:53
Учить тернарный с самого начала обучения Java считай, это категория особых извращений:)
iDSDDR
Уровень 10, Молдова
1 февраля, 23:14
Про тернарный оператор речь зашла еще в конце 5 или начале 6 уровня. Самое время пробовать его в деле
ARCOS
Уровень 18, Москва, Россия
5 апреля, 16:27
Разве в данном случае, через тернарный оператор код получится более читаемый, чем через if-else if ?
Blame
Уровень 35, Омск, Россия
9 апреля, 14:23
я сделал через четыре тернарных оператора. если тру то выводим нужную надпись, иначе просто "".