- •6.3. Переключатель
- •6.3.1. Формат записи в Паскале:
- •7. Структуры циклов
- •7.1. Цикл с параметром (счетчиком, с управляющей переменной)
- •7.1.1. На Паскале
- •7.2. Итерационные циклы
- •7.2.1. Циклы с предусловием
- •7.2.2. Циклы с постусловием
- •7.2.3. Вложенные циклы
- •7.2.4. Операторы break и continue
- •7.3. Краткие итоговые сведения
7. Структуры циклов
Цикл - это конструкция языка программирования, которая используется для выполнения каких-либо действий определенное количество раз.
Любой цикл состоит из следующих элементов:
-
Точки входа
-
Тела цикла, которое содержит операторы, выполняемые за один проход
-
Точки выхода
-
Условного выражения, определяющего момент окончания цикла
-
Дополнительно используемых операторов break и continue
7.1. Цикл с параметром (счетчиком, с управляющей переменной)
Вариант циклического вычислительного процесса, характерные особенности которого состоят в том, что:
-
число повторений цикла известно к началу его выполнения;
-
управление циклом осуществляется с помощью переменной порядкового типа, которая в этом циклическом процессе принимает последовательные значения от заданного начального до заданного конечного значений.
Для компактного задания подобного рода вычислительных процессов и служит оператор цикла с параметром.
7.1.1. На Паскале
Синтаксис:
For V:= E1 to E2 do S,
В некоторых случаях бывает удобно, чтобы параметр цикла Паскаля принимал последовательные, но не возрастающие, а убывающие значения. Для таких случаев в Паскале предусмотрен оператор цикла с параметром следующего вида:
For V:= E1 downto E2 do S,
При этом значения выражений Е1 и Е2 вычисляются один раз, при входе в оператор цикла, а значение параметра цикла V не должно изменяться в результате выполнения оператора S. Если заданное конечное значение меньше начального значения (что допустимо), то оператор S не выполняется ни разу. Для обоих вариантов записи цикла с параметром справедливо: если начальное и конечное значения равны, то тело цикла (оператор S) выполнится один раз.
7.1.2. На С++
Синтаксис цикла for таков:
for (начальное значение; условие выполнения; приращение)
{
Операторы;
}
В скобках после ключевого слова for находятся три выражения:
-
Инициализирующее. Оно предназначено для инициализации счётчика цикла.
-
Условие проверки цикла. Здесь, как правило, находится операция отношения. Если она возвращает единицу, то выполняется тело цикла, если возвращает ноль, то выполняется первый оператор стоящий за закрывающей фигурной скобкой.
-
Выражение инкрементирования (декрментирования) счётчика цикла. В этом выражении мы можем изменить значение счётчика. Можно использовать инкрементное выражение с любым параметром инкремента, например:
For (int і = 0; і <= GetNumberOfElements(); і += 2) {...}
for(int i = 0; i < 100; i += 10) {...}
Как работает цикл:
-
Инициализация счётчика
-
Проверка счётчика
-
Выполнение тела цикла
-
Инкремент (декремент) счётчика
-
Проверка счётчика
-
Выполнение тела цикла
И так, до тех пор, пока условное выражение не вернёт ноль.
В качестве условного выражения допустимо любое выражение С++, результатом которого может быть true. Ниже приведены примеры правильной записи условных выражений:
For (int і = 0; і < 100; i++) {...}
For (int і = 1; і == numberOfElements; i++) {...}
Любой из трех параметров цикла for может быть опущен.
Если опустить первый и третий операторы, то цикл for будет подобен циклу while, рассматриваемому далее.
Пример:
int cycle = 0; // объявляем переменную cycle типа int
for( ; cycle < 5; ) // опускаем 1-й и 3-й параметр
{
cycle++; // увеличиваем значение переменной на 1
cout << "Yes!"; // выводим на экран слово Yes!
}
cout << "\nCycle: << cycle << ".\n";// после цикла выводим значение переменной
В результате выполнения программы на консоль будет выведен текст
Yes!Yes!Yes!Yes!Yes!
Cycle:5.
Если опустить все три параметра, организуем бесконечный цикл.
for(;;)
{
printf("A"); // печатаем букву A
}