|
Подобно условным выражениям, условные операторы служат для того, чтобы в зависимости от результата проверки некоторого условия выбрать тот или иной способ действий, конкретнее — выполнить тот или иной оператор. Структура условного оператора: if В then Sx else S где В — логическое выражение, Sx — безусловный (т. е. не условный) оператор, S — произвольный оператор. Выполнение условного оператора начинается с вычисления логического выражения В. Если это вычисление дает значение «истина», то выбирается оператор St, в противном случае — оператор S. Выбранный оператор выполняется и на этом выполнение условного оператора заканчивается. Пусть S2 — оператор, который должен выполняться после рассматриваемого условного оператора. Тогда работу условного опера- тора можно пояснить блок-схемой, изображенной на рис. 7.9.1. Однако, если внутренний оператор Sx или S (или оба) является оператором перехода, то стрелку, ведущую от соответствующего блока схемы к блоку S2, надо выбросить. Пример условного оператора: if i<Cn then i: = i + / else go to / Часто с помощью условных операторов можно сделать то же самое, что делают безусловные операторы, содержащие условные выражения. Например, оператор присваивания у: = if x^xl then х else xl можно заменить в точности эквивалентным ему условным оператором if x^xl then у : = х else у : = xl Оператор go to if i = n then exit else continue можно заменить оператором if i = n then go to exit else go to continue Варианты, в которых используются условные операторы вместо условных выражений, чуть более громоздки, но многие программисты пользуются ими охотнее. Если конечная цель работы программиста — составить машинную программу, то так и следует поступать, потому что структура этих вариантов ближе к структуре соответствующих участков машинной программы. Очень часто при построении алгоритмов возникают ситуации, которые хорошо отражает блок-схема на рис. 7.9.1, но функции блоков 5г и (или) S не могут быть описаны каким-либо одним из известных нам операторов Алгола. В таких случаях на помощь приходит понятие составного оператора.
|