Пример использования оператора условия
Листинг 3.5. Пример использования оператора условия
if I in [1..5] then С := 'До пяти' else if I in [6..10] then С := 'Выше пяти'
else if (I = 0) or (I in [10..99]) then С := 'Вне области допустимых значений' else
С := ";
На листинге 3.5 получилась довольно тяжело читаемая конструкция.
Операторы цикла
Иногда необходимо, чтобы какая-либо часть программы выполнялась несколько раз. Для этого во всех языках программирования, в том числе и в языке Object Pascal, используются циклы.
Цикл — это последовательность операторов, команд, которая выполняется более одного раза, т. е. повторяется. Такие операторы и команды называют телом цикла.
В языке Object Pascal имеются три вида операторов цикла:
- цикл с параметром;
- цикл с предусловием;
- цикл с постусловием.
Каждый из этих видов циклов удобно применять в определенных случаях, хотя с помощью любого из них можно обходиться практически в любом случае.
В тело цикла допускается помещать оператор безусловного перехода goto. Кроме того, для досрочного прерывания выполнения цикла можно использовать специальную процедуру break. Вызов этой процедуры приводит к прекращению выполнения операторов тела цикла и переходу к выполнению операторов, расположенных сразу за циклом. Вы можете досрочно завершить выполнение данного повторения цикла при помощи вызова процедуры continue. Ее вызов приводит к передаче управления сразу в конец цикла, т. е. досрочному завершению данного повторения.
Операторы циклов допускают множественные вложения друг в друга. При вложении сначала выполняются внутренние операторы цикла, а затем — внешние. Далее мы приведем примеры вложений операторов цикла друг в друга.
Цикл с параметром
Цикл с параметром применяется в том случае, когда заранее известно, сколько раз он должен выполниться. Данный цикл выглядит следующим образом:
For параметр:=нач.значение to кон.значение do оператор;
или
For параметр:=нач.значение downto кон.значение do оператор;
Параметр цикла — это переменная порядкового типа, которая объявлена в разделе объявления переменных.
Начальное значение — это значение, которое принимает параметр цикла. Естественно, что данное значение должно быть того же типа, что и переменная параметра цикла.
Конечное значение — это значение, которое может принимать параметр цикла.
Оператор — это одиночный или составной оператор, который и представляет собой тело цикла.
Внимание
Тело цикла не должно изменять параметр цикла, т. к. это может привести к непредсказуемым последствиям. В частности, к бесконечному циклу (зацикливанию программы).
И первый и второй варианты написания цикла изменяют параметр цикла на единицу. В первом случае (for ... to) происходит увеличение параметра на единицу при каждом проходе цикла, во втором случае (for ... downto) — уменьшение параметра цикла на единицу.
Итак, цикл с параметром выполняется несколько раз, постепенно увеличивая или уменьшая значение параметра: до тех пор, пока это значение не достигнет конечного значения.
Примечание
Цикл не выполняется ни разу, если для первого варианта цикла начальное значение параметра больше конечного, а для второго варианта — конечное значение больше начального.
Приведем несколько примеров циклов с параметрами (листинг 3.6).