Java за неделю. Вводный курс - страница 25

Шрифт
Интервал


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


4.3.2 Оператор цикла 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 или больше, то цикл сработает один раз и выведет начальное значение переменной.


4.3.3 Оператор цикла 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 и запускается следующая итерация внешнего цикла.