Главная » Java, Структуры данных и алгоритмы » Операторы if и switch

0

Алгоритмы управления в Java аналогичны соответствующим алгоритмам другкх развитых языков. В данном разделе подробнее рассмотрим основную структуру и синтаксис алгоритма управления, в том числе возвращаемые методом значения, операторы условия, операторы варианта, циклы и частные формы «переходов»* (операторы break и continue).

Условные операторы работают в Java так же, как и в- других языках программирования. Вначале вычисляется логическое выражение, а затем, в зависимости от результата вычисления, выполняются тот или другой блок (или блокц)с°ператоров.

Оператор if

Условный оператор в языке Java записывается следующим образом:

if (<boolean_expr>) <true_statement> [else if (<boolean_expr >)

<else_if_statement>] [else

<else_statement>]

где каждый оператор может представлять собой блок операторов, заключенных в фигурные скобки («{» и «}»). Кроме того, следует отметить, что ветви «else if» и «else» являются необязательными. Полноценный условный оператор может быть записан и без них.

В отличие от языков С и С++, Java в условных операторах использует выражения только логического типа.

Данное ограничение позволяет избежать широко распространенной ошибки, как, например, обнаруживаемой компилятором в следующем примере:

i = 5;

// промежуточный код if (i = 5) //НЕВЕРНО! // …

В данном случае «операция условия» на самом деле является операцией присваивания значения типа int. Оператор условия записан неверно.

Правильной формой записи является следующая:

if (snowLevel < 2) { goToClass(); comeHome();

}

else if (snowLevel < 5) { goSledding(); haveSnowballFight();

}

else

stayAtHomeQ;

Оператор switch

Этот оператор варианта позволяет создавать алгоритм управления несколькими переменными. Например:

public Candy getCandy (int money) {

Candy candy;

int tax=1;

switch (money+tax) { case 5:

candy = new Gumball (); break; case 25;

candy = new Peanuts (); break; case 50;

candy = new Candybar (); break; default;

candy = new EmptyWrapper(); break;

}

return candy;

}

Оператор switch вычисляет значение целочисленного выражения (например, «money+tax»), после чего алгоритм переходит к части кода, соответствующей значению этого выражения. Если ни одна из констант не равна значению выражения, выполняется оператор, помеченный как default. Однако это единственный явный переход, выполняемый оператором switch. Алгоритм не может перейти к следующему блоку, если код этого блока не заканчивается оператором break (который показывает, что алгоритм должен перейти на следующую строку после оператора switch).

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии