Иллюстрированный самоучитель по Java

Условный оператор

Условный оператор (if-then-else statement) в языке Java записывается так:

if (логВыр) оператор1 else оператор2

…и действует следующим образом. Сначала вычисляется логическое выражение логвыр. Если результат true, то действует оператор1 и на этом действие условного оператора завершается, оператор2 не действует, далее будет выполняться следующий за if оператор. Если результат false, то действует оператор2, при этом оператор1 вообще не выполняется.

Условный оператор может быть сокращенным (if-then statement):

if (логВыр) оператор1

…и в случае false не выполняется ничего.

Синтаксис языка не позволяет записывать несколько операторов ни в ветви then, ни в ветви else. При необходимости составляется блок операторов в фигурных скобках. Соглашения "Code Conventions" рекомендуют всегда использовать фигурные скобки и размещать оператор на нескольких строках с отступами, как в следующем примере:

if (а < х) {
х = а + b; } else {
х = а -b;
}

Это облегчает добавление операторов в каждую ветвь при изменении алгоритма. Мы не будем строго следовать этому правилу, чтобы не увеличивать объем книги.

Очень часто одним из операторов является снова условный оператор, например:

if (n == 0}{
sign = 0;
} else if (n < 0){
sign = -1;
} else {
sign = 1;
}

При этом может возникнуть такая ситуация ("dangling else"):

int ind = 5, х = 100;
if (ind >= 10) if (ind <= 20) x = 0; else x = 1;

Сохранит переменная х значение 100 или станет равной 1? Здесь необходимо волевое решение, и общее для большинства языков, в. том числе и Java, правило таково: ветвь else относится к ближайшему слева условию if, не имеющему своей ветви else. Поэтому в нашем примере переменная х останется равной 100.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.