ошибка: неверные типы операндов для двоичного оператора ‘>=’ «иначе, если (имт >=25,0)»

#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. Это был бы лучший ответ, если бы вы объяснили, что вы изменили и почему.