Ошибка java: not a statement в IntelliJ IDEA

Ошибка java: not a statement в IntelliJ IDEA


Вроде все написано корректно, но IntelliJ IDEA почему-то выдает ошибку:

java: not a statement
public class Main {
    
    public static void main(String[] args) {

        int a = 20;
        int b = 35;

        if (a == b) {
            System.out.println("a == b");
        } else if (a > b) {
            System.out.println("a > b");
        } else (a < b) {
                System.out.println("a < b");
        }
    }
}


Все верно, else (a < b) - это некорректно по синтаксису и будет выдавать ошибку компиляции.

Когда идёт цепочка if-else-if, то надо делать отступы в коде, чтобы было видно к какому блоку относится то или иное утверждение.

if (a == b) {
   System.out.println("a == b");
} else if (a > b) {
   System.out.println("a > b");
} else if (a < b) { // всегда верно, поэтому можно использовать просто else
   System.out.println("a < b");
} 

В последнем операторе цепочки оператор if можно опустить, т.к. в данном случае логически условие всегда верно. Если добавить ещё один блок else, то он никогда выполняться не будет и компилятор его удалит.


Оператор if-then-else

Оператор if-then-else обеспечивает вторичный путь выполнения, когда предложение if принимает значение false. Вы можете использовать оператор if-then-else в методе applyBrakes(), чтобы выполнить какое-либо действие, если тормоза задействуются, когда велосипед не движется. В этом случае действие состоит в том, чтобы просто распечатать сообщение об ошибке о том, что велосипед уже остановился.
void applyBrakes() {
    if (isMoving) {
        currentSpeed--;
    } else {
        System.err.println("Велосипед уже остановился!");
    }
}
Следующая программа, IfElseDemo, присваивает оценку на основе значения результата теста: A — за результат 90 % или выше, B — за результат 80 % или выше и т. д.
class IfElseDemo {
   public static void main(String[] args) {

       int testscore = 76;
       char grade;

       if (testscore >= 90) >{
           grade = 'A';
       } else if (testscore >= 80) {
           grade = 'B';
       } else if (testscore >= 70) {
           grade = 'C';
       } else if (testscore >= 60) {
           grade = 'D';
       } else {
           grade = 'F';
       }
       System.out.println("Grade = " + grade);
   }
}
Результатом работы программы является:
Grade = С
Возможно, вы заметили, что значение grade может удовлетворять более чем одному выражению в составном операторе: 76 >= 70 и 76 >= 60. Однако, как только условие выполнено, соответствующие операторы выполняются (grade = 'C';) и остальные условия не оцениваются.


Report Page