Ошибка 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';) и остальные условия не оцениваются.