#java
Вопрос:
ошибка: неверные типы операндов для двоичного оператора ‘gt;=’ «иначе, если (имт gt;lt;=18.5 gt;=25.0)»lt;=18.5 gt;
как это решить?
int bmi; Scanner console = new Scanner(System.in); System.out.print("Measure your height and weight.") Systen.out.print("Then Calculate your BMI.") System.out,print("Enter how many score you got : ") bmi = console.nextINt(); if (bmi lt;= 18.4) { System.out.println("You're under weight, you need to gain more weight!"); } else if (bmi lt;=18.5 gt;=24.9) { System.out.println("You're normal, Congrats!"); } else if (bmi lt;=25.0) { System.out.println("You're Overweight, you need to lose some weight."); }
Комментарии:
1.
if (bmi lt;=18.5 gt;=24.9)
похоже наif ((bmi lt;=18.5) gt;=24.9)
. Вы видите в чем проблема?2. Java-это не Python, у него нет подобного синтаксиса
min lt; value lt; max
. В Java вам нужно использовать логические операторы для суммирования или пересечения диапазонов, например(min lt; value) amp;amp; (value lt; max)
— здесь вы можете пропустить скобки.3. все еще показывает плохие типы операндов для двоичного оператора ‘gt;=’ Я также попытался поместить amp;amp; в середину, и это показало незаконное начало выражения
4. должно быть так
if (bmi lt;=18.5 amp;amp; bmi gt;=24.9)
5. также ваши условия неверны, 2-е-если :
if (bmi gt;=18.5 amp;amp; bmi lt;=24.9)
, 3-е-еслиif (bmi gt;=25.0)
Ответ №1:
это то же самое, что и сейчас, и все еще показывает ошибку?
Кроме того, зачем принимать bmi
как int
, почему не float
так, как вы сравниваете его со значениями с плавающей точкой.
замените console.nextInt()
на console.nextFloat()
для приема ввода с плавающей точкой
float bmi = console.nextFloat(); if (bmi lt;= 18.4) { System.out.println("You're under weight, you need to gain more weight!"); } else if (bmi gt;=18.5 amp;amp; bmi lt;=24.9) { System.out.println("You're normal, Congrats!"); } else if (bmi gt;=25.0) { System.out.println("You're Overweight, you need to lose some weight."); }
Комментарии:
1. Его исправили благодаря
2. @BravoSix в чем была ошибка? что ты написал?
3. изменено (имт lt;=18,5 amp;amp; gt;=24,9) на (имт lt;=18.5 amp;amp; gt;gt;=18.5 amp;amp; имт lt;=18,5 amp;amp; gt;gt;
4. Я изменил int на float, но по-прежнему не показывает результат, когда есть десятичная точка
5. вместо
console.nextInt()
использованияconsole.nextFloat()
Ответ №2:
int bmi; Scanner console = new Scanner(System.in); System.out.print("Measure your height and weight.") Systen.out.print("Then Calculate your BMI.") System.out,print("Enter how many score you got : ") bmi = console.nextINt(); if (bmi lt;= 18.4) { System.out.println("You're under weight, you need to gain more weight!"); } else if (bmi lt; 25) { System.out.println("You're normal, Congrats!"); } else { System.out.println("You're Overweight, you need to lose some weight."); }
Комментарии:
1. Это был бы лучший ответ, если бы вы объяснили, что вы изменили и почему.