- •1. Условный оператор if
- •If (условие)
- •2. Составной оператор
- •4. Оператор цикла for
- •5. Оператор цикла while (цикл с предусловием)
- •6. Операторы цикла do … while (цикл с постусловием)
- •7. Операторы прерывания continue, break, return, System.Exit
- •8. Оператор выбора switch
- •9. Условное выражение … ? … : …
- •If (условие) {
- •10. Ошибки при использовании вещественного счетчика цикла
- •11. Эффективная организация циклов
- •Void getFood(int food, int drink); // Кормление
- •Сборка мусора
- •Import org.Eclipse.Swt.*;
- •Import org.Eclipse.Swt.Widgets.*;
- •If (!display.ReadAndDispatch ()) display.Sleep ();
- •Import org.Eclipse.Jface.Window.ApplicationWindow;
- •Import org.Eclipse.Swt.Swt;
- •Import org.Eclipse.Swt.Widgets.*;
- •Основные элементы («теги»)
- •Гиперссылки
- •Текстовые блоки
- •Форматирование текста
- •Options
- •Клиенты
- •2.2.Простой Web проект
- •Компоненты j2ee
- •Комментарии
- •Скриптовые элементы
- •Объявления jsp
- •Выражения jsp
- •Скриплеты jsp
- •Директивы jsp
4. Оператор цикла for
В общем случае цикл for записывается следующим образом:
for (инициализация; условие выполнения; изменение счетчика)
оператор;
Блок инициализации выполняется только ОДИН раз — перед выполнением цикла, затем
происходит проверка условия выполнения цикла и, если оно истинно, то выполняется
оператор, который называют телом цикла. После этого исполняется блок изменения
счетчика, проверяется условие выполнения цикла, а потом снова выполняется тело
цикла. Это повторяется до тех пор пока условие выполнения цикла не окажется ложным.
Если условие выполнения цикла ложно с самого начала, то тело цикла не выполняется
ни одного раза (сразу после выполнения блока инициализации и проверки условия действие
оператора for завершается.
Рассмотрим цикл в котором подсчитывается сумма всех целых чисел от 1 до 10:
int s = 0;
int i;
for (i = 1; i <= 10; i++)
s = s + i;
System.out.println("Сумма чисел от 1 до 10 равна " + s);
Сначала мы объявляем две переменные: s в которой мы будем хранить сумму чисел и i, ко-
торая будет являться счетчиком цикла. Далее мы инициализируем i значением 1 и задаем
условие выполнения цикла i меньше или равно 10 (т. к. нам необходимо перебрать все числа
от 1 до 10). В блоке модификации счетчика задаем увеличение i на 1. В теле цикла мы при-
бавляем к сумме s текущее значение счетчика i. После завершения цикла выводим получен-
ное значение суммы s на экран.
Цикл for является очень гибкой и универсальной конструкцией при помощи которой
одну и туже задачу можно решить самыми разными способами. Приведем еще один способ
решения предыдущей задачи в котором мы поместим максимум действий непосредственно в
оператор for, так что тело цикла вообще окажется пустым:
int s = 0;
for(int i = 1; I <= 10; s += i++);
System.out.println("Сумма чисел от 1 до 10 равна " + s);
В отличие от предыдущего примера мы перенесли объявление счетчика цикла i в блок ини-
циализации цикла, а подсчет суммы в блок модификации счетчика. В результате тело цикла
состоит из пустого оператора (точка с запятой).
Можно произвести и противоположную модификацию — максимально сократить сам
оператор for, увеличив окружающий его код. Следует заметить, что все три части оператора
for – блок инициализации, условие выполнения тела цикла и блок модификации счетчика
являются не обязательными, однако указывать разделяющие их точки с запятой нужно всегда.
Максимально сокращенный оператор for будет выглядеть следующим образом:
int s = 0;
int i = 1;
for(;;) {
if (i > 10) break;
s = s + i;
i++;
}
System.out.println("Сумма чисел от 1 до 10 равна " + s);
В этом случае инициализацию счетчика мы поместили до цикла, а проверку условия и моди-
фикацию счетчика — внутрь цикла. Считается, что если условие выполнения тела цикла не
указано, то оно всегда истинно, а цикл становится «бесконечным». Для выхода из цикла был
использован один из прерывающих операторов — break;
5. Оператор цикла while (цикл с предусловием)
Цикл на основе оператора while выглядит следующим образом:
while (условие)
оператор;
Пока условие истинно (имеет значение true) выполняется оператор, когда условие цик-
ла становится ложно (значение false) выполнение цикла прекращается. Если условие лож-
но с самого начала, то тело цикла не выполняется ни одного раза.
Оператор while можно рассматривать, как частный случай оператора for в котором
отсутствуют блоки инициализации и модификации счетчика. В тех случаях когда данные бло-
ки в конкретном алгоритме не нужны или наоборот они слишком громоздки для помещения
их внутрь оператора for использование оператора while может сделать программу более
понятной, а значит и уменьшит шанс ошибиться при ее написании.
