Условные операторы if и if-else в Java - Вопросы

Всего: 5 вопросов

1. 

В чём разница между операторами if и if-else в Java?

Оператор if выполняет свой блок только когда условие истинно; если условие ложно, не выполняется ничего. Оператор if-else всегда выполняет ровно один из двух блоков: блок if, если условие true, либо блок else, если условие false.

2. 

Как работает лесенка if-else-if и в какой момент она перестаёт проверять условия?

Условия проверяются сверху вниз. Как только одно из них оказывается истинным, выполняется его блок, а все оставшиеся else if и завершающий else уже не проверяются. Если ни одно условие не истинно, выполняется блок else — при условии, что он есть.

3. 

Почему рекомендуется всегда ставить фигурные скобки {} в ветках if, даже если в ветке всего одна команда?

Скобки необязательны для одной команды, и код скомпилируется. Но без них ветка управляет только первой командой: если позже дописать вторую строку, она незаметно окажется вне if и будет выполняться всегда. Соглашения Oracle по оформлению кода рекомендуют ставить скобки всегда, чтобы избежать таких скрытых ошибок.

4. 

Что произойдёт, если поставить точку с запятой сразу после условия: if (a > 5);?

Код скомпилируется, но точка с запятой — это пустая команда, которая и становится телом if. Поэтому условие ни на что не влияет, а идущий следом блок кода выполнится в любом случае, независимо от значения a. Это частая и трудноуловимая ошибка.

5. 

Чем лесенка if-else-if отличается от оператора switch и когда выбирать каждый из них?

Лесенка if-else-if проверяет любые логические условия, включая диапазоны вроде x > 10 и вызовы методов. Оператор switch сравнивает одно значение с константами и обычно читается легче, когда все ветки проверяют одну и ту же переменную на равенство. Для сложных условий выбирайте if-else-if, для сравнения одной переменной с набором констант — switch.

Страница 1 из 1