Операторы досрочного выхода




Операторы цикла

Операторы цикла предназначены для многократного выполнения блоков команд. В языке Java применяются операторы while, do... while и for.

Оператор цикла while

Шаблон оператора цикла while имеет вид:

while (условие) {

// Блок команд

}

При выполнении оператора цикла сначала проверяется условие. Если условие истинно, то выполняется блок команд в теле цикла. Затем условие проверяется снова. Если оно осталось истинным, вновь выполняется блок команд. Если условие стало ложным, то работа оператора цикла прекращается, и управление передается командам, следующим за циклом. Пример цикла while:

int a = 0;
while (a <10) {
System.out.println (a);
a++;
}
System.out.println («Выполнение цикла завершено»);

В этом примере цикл выполняется до тех пор, пока значение переменной a остается меньше 10. Вы уже знакомы с оператором автоинкремента (++), при помощи которого изменяется значение переменной. Если не менять значение переменной в теле цикла, то цикл будет выполняться вечно, потому что условие всегда будет истинным. Иногда такие «вечные циклы» бывают необходимы. Но в большинстве случаев это логическая ошибка, которая приводит к «зацикливанию» программы.

При определенных обстоятельствах может случиться так, что блок команд внутри цикла while не будет выполнен никогда, если условие цикла изначально будет ложным. Например, если перед выполнением цикла переменной a будет присвоено значение 10, то цикл
из примера не сработает ни разу.

Оператор цикла do... while

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

do {

// Блок команд

} while (условие);

Перепишем предыдущий пример, используя оператор do... while: int a = 0;
do {
System.out.println (a);

a++;
} while (a <10);

Программа из этого примера выводит в окно терминала числа от 0 до 9. Но если переменную a инициализировать значением 10 или больше, то цикл сработает один раз и выведет начальное значение переменной.

Оператор цикла for

У оператора цикла for наиболее сложная конструкция, которая содержит все компоненты – инициализацию, условие, изменение:

for (инициализация; условие; инкремент/декремент) {

// Блок команд

}

Инициализация переменной цикла выполняется только один раз при обращении к оператору цикла. Затем проверяется истинность условия. Если оно возвращает значение true, то выполняется блок команд. Далее производится вычисление нового значения переменной цикла и вновь проверяется истинность условия. Если оно осталось истинным, то вновь выполняется блок команд. Цикл повторяется до тех пор, пока условие не перестанет быть истинным.

Пример цикла for:
for (int i=0; i <=10; i++) {
System.out.println (i);
}
Если тело цикла состоит из одной команды, то можно обойтись без фигурных скобок: for (int i=0; i <=10; i++) System.out.println (i);
 4.3.4 Вложенные циклы

Оператор цикла может быть вложен в тело другого цикла. В этом случае при каждом проходе внешнего цикла будет срабатывать и полностью выполняться вложенный цикл. Вложенные циклы обычно требуются для последовательного перебора элементов двумерных или многомерных структур (матриц, массивов, таблиц) и выполнения действий с этими элементами.

В листинге 4.3 во внешнем цикле последовательно перебираются дни недели weekDay,
с первого по седьмой. При каждом проходе цикла выводится на печать номер дня недели, затем запускается вложенный цикл. Когда вложенный цикл отработал, выполняется перенос строки при помощи управляющей последовательности \n и запускается следующая итерация внешнего цикла.

Во вложенном цикле последовательно перебираются часы внутри текущего дня dayHour,
с 1 по 24. Значения счетчика часов последовательно выводятся в одной строке через запятую с пробелом.

Листинг 4.3 Пример использования вложенного цикла

public class Listing4_3 {
public static void main (String [] args) {
for (int weekDay=1; weekDay <=7; weekDay++) { System.out.print («День недели: "+weekDay+" Часы:»); for (int dayHour=1; dayHour <=24; dayHour++) { System.out.print (dayHour+«»);
}
System.out.print (»\n»);
}
}
}

В качестве самостоятельной работы сделайте так, чтобы во внешнем цикле вместо номера дня недели выводилось его название. Ваших знаний уже достаточно, чтобы решить эту задачу, используя один из ранее изученных операторов. Но решение пока не будет оптимальным с точки зрения программирования. В главе 5 вы познакомитесь с массивами, которые предназначены для работы с упорядоченными наборами значений.

Операторы досрочного выхода

Иногда возникает необходимость досрочно прервать выполнение цикла при возникновении определенной ситуации. Для этого используется уже знакомый вам оператор break, а также операторы continue и return.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: