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

0

Важным механизмом алгоритма управления в языке программирования является понятие циклов. В Java встроены три типа циклов.

Цикл for

Простейшая форма оператора цикла for предусматривает повторение заданной последовательности операторов на основании целочисленного индекса. Однако Java предлагает и другие достаточно широкие возможности оператора for. В частности, сам процесс работы оператора for можно разделить на четыре части: инициализация, условие, инкремент и тело оператора. Запись оператора for осуществляется следующим образом:

for ([<initialization>];[<condition>];[<increment>]) <body_statement>

В части <initialization> записывается переменная-индекс с обязательным начальным значением, видимая только в пределах цикла for. Например, если необходимо создать цикл для индексации счетчика и переменная счетчика требуется только внутри цикла for, необходимо записать:

for (int counter = 0; <condition>; <increment>)

Это означает, что область видимости переменной counter — только внутри цикла.

Далее следует часть <condition>, содержащая повторяющееся (while) условие цикла, которое является логическим выражением. Вначале вычисляется логическое выражение, и тело цикла for будет выполняться до тех пор, пока значение логического выражения <condition> будет равно true. Если <condition> изначально равняется false, то оператор не будет выполняться, и программа переходит к выполнению следующего за циклом for оператора.

Часть <increment> содержит инкрементный оператор цикла. Инкре- ментным оператором может быть любой оператор, позволяющий изменять значение.

Ниже приводится пример простого оператора for:

public void eatApples (Apples apples) { numApples = apples.getNumApples (); for (int x = 0; x, numApples; x++) { eatApple (apples.getApple (x)); spitOutCore ();

}

}

В данном примере переменная х объявляется как int х = 0. Каждый раз проверяется условие «х < numApples», и тело цикла выполняется только при равенстве значения этого услобия true. В конце каждого повторения используется оператор х++, который увеличивает значение переменной х на единицу перед следующей проверкой условия.

Кроме оператора for, в Java существуют еще два вида цикличных операторов: стандартный оператор while и оператор do-while. В первом логическое выражение вычисляется перед очередным выполнением тела цикла, а во втором — после.

Оператор while

Для проверки условия перед выполнением тела цикла используется следующий синтаксис:

while (<boolean_expression>) <loop_body_statement>

Перед выполнением цикла происходит вычисление логического выражения, и, если его значение true, выполняется тело цикла. Так же, как и в случае с оператором for, в тело цикла может быть включен блок операторов.

В качестве примера рассмотрим ситуацию полива гномом грядки с морковкой. Эта операция выполняется до тех пор, пока в лейке есть вода. Так как лейка может быть пуста изначально, для выполнения указанной задачи следует записать код:

public void waterCorrots () {

Carrot current = garden findNextCarrot ();

while (IwaterCan.isEmpty ()) { water (current, waterCan); current = garden.findNext carrot (),

}

}

He забывайте, что символ «!» в Java обозначает отрицание «not». Оператор do-while

Оператор while, в котором условие проверяется после выполнения тела цикла, записывается следующим образом:

do

<loop_body_statement>

while (<boolean_expression>)

Как и в других операторах цикла, тело цикла может содержать блок операторов* а услоэие является логическим выражением. Выполнение цикла do-while происходит до тех пор, пока значение логического выражения остается равным true.

Рассмотрим следующий пример. Программа предлагает пользователю ввести некую информацию, которая затем используется в определенных целях (более подробно ввод и вывод в языке Java рассматривается в разделе 1.6). В данном случае возможным условием прекращения цикла является ситуация ввода пользователем пустой строки. Однако даже в этом случае программа обрабатывает введенную информацию и сообщает пользователю, что выполнение цикла закончено. Пример выглядит следующим образом:

public void getUserlnputQ { String input; do {

input = getinputString(); handlelnput(input); } while (input.length()>0);

}

Обратите внимание на условие выхода из цикла в данном примере. Форма записи условия соответствует правилу Java о том, что Выполнение цикла do-while прекращается, когда условие не верно (в отличие от конструкций repeat-until, используемых в других языках).

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

По теме:

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