Изучение циклических конструкций мы начинаем с цикла For.
Приведем общий вид конструкции цикла For (рис.1):
Рис.1. Общий вид цикла For
Как видно из этого рисунка, цикл состоит из заголовка, начинающегося со служебного
слова For и заканчивающегося словом Do, и тела цикла. Перечислим
основные особенности использования цикла For (он еще называется циклом "Для"):
1) он используется тогда, когда известно количество повторений тела цикла
(известны нижняя и верхняя границы изменения счетчика цикла);
2) в качестве счетчика цикла, как правило, используется переменная целого
(Byte, Integer и т.п.) или символьного типа (Char);
3) шаг изменения счетчика цикла является величиной постоянной и равен 1 или -1.
В последнем случае вместо служебного слова To используется DownTo;
4) если тело цикла состоит из нескольких операторов, то они заключаются в
операторные скобки Begin..End.
Кратко опишем порядок выполнения цикла. При первом обращении к заголовку цикла
происходит вычисление выражений, определяющих нижнюю и верхнюю границы счетчика цикла.
Проверяется истинность одного из следующих утверждений:
- если в заголовке цикла использовано служебное слово To, то вычисленное
значение нижней границы должно быть не больше значения верхней границы;
- если в заголовке цикла использовано служебное слово DownTo, то вычисленное
значение нижней границы должно быть не меньше значения верхней границы.
В случае истинности одного из этих утверждений счетчику цикла присваивается значение нижней границы и выполняется тело цикла. По завершению выполнения тела цикла проверяется, будет ли принадлежать следующее значение счетчика цикла промежутку, заданному нижней и верхней границами счетчика цикла. В случае положительного ответа счетчик цикла получает это значение и снова выполняется тело цикла. В противном случае значение счетчика не изменяется и осуществляется выход из цикла, то есть выполняется следующий после цикла оператор.
Таким образом, задача, сформулированная на предыдущем шаге (составить программу, выводящую на экран первые 10 натуральных чисел), с помощью конструкции цикла может быть решена следующим образом:
Program Cikl1; Var i:Byte; Begin WriteLn('Первые 10 натуральных чисел: '); For i:=1 To 10 Do {i принимает значения от 1 до 10} WriteLn(i); End.
For i:=1 To 10 Do WriteLn(i); WriteLn(i); ?2. Измените программу Cikl1 так, чтобы она выводила на экран первые 10 натуральных чисел в обратном порядке.
Следующий шаг будет посвящен рассмотрению вопросов, связанных с другими циклическими
конструкциями.