. Зарезервированное слово
BEGIN тоже не является оператором (как и все остальные зарезервированные слова), и после него точка с запятой не ставится. Так, чтобы оформить
- 94 -
три приведенных выше оператора в один, но составной, нужно как бы заключить их в операторные скобки BEGIN...END:
| BEGIN
|> a:=11;
|> b:=a*a;
|> Write(a,b)
| END;
При этом последняя точка с запятой перекочевала за слово END. Составной оператор может содержать любое допустимое число простых операторов, состоять лишь из одного оператора или вообще быть пустым. Он допускает вложенность, т.е. может содержать внутри себя другие составные операторы (в этом случае нужно лишь, чтобы внутренний составной оператор открывался позже чем внешний, а закрывался раньше).
Составной оператор — очень важное понятие в структурном программировании. В Паскале все управляющие структуры не различают простой и составной операторы: там, где стоит простой оператор, можно поставить и составной.
6.2. Условный оператор (IF...THEN...ELSE)
Условный оператор IF...THEN...ELSE (если...то...иначе) имеет структуру
If Условие THEN Оператор1 ELSE Оператор2;
и служит для организации процесса вычислений в зависимости от какого-либо логического условия. Под условием понимается логическое значение True (истинно) или False (ложно), представленное константой, переменной или логическим выражением, например:
IF True THEN ...; { крайний и бесполезный случай условия }
IF LogicalVar THEN ...; { условие — логическая переменная }
IF not LogicalVar THEN ...; {условие — логическое выражение}
IF x > 5 THEN ...; { условие — результат операции сравнения}
Если условие представлено значением True, то выполняется оператор (простой или составной), следующий за словом THEN. Но если условие не выполняется, т.е. представлено значением False, то будет выполняться оператор (может быть простым или составным), следующий за словом ELSE. Например:
- 95 -
| IF x>5
| THEN { ветвь при x>5 - истинно }
| BEGIN
|> x:=x+5; y:=1 { некий составной оператор }
| end
| ELSE { ветвь при x>5 - ложно }
|> y:=-1; { простой оператор }
В примере между ключевыми словами нет точек с запятой. Более того, их появление было бы ошибкой, что будет показано ниже. Но точка с запятой в конце всего оператора (после завершения ветви ELSE) обязательна. Она отделяет условный оператор от остальных, следующих за ним по тексту. Альтернативную ветвь ELSE можно опускать, если в ней нет необходимости. В таком «усеченном» условном операторе в случае невыполнения условия ничего не происходит, и выполняется следующий за условным оператор. Имеет «право на жизнь» условный оператор с ветвями, содержащими пустые операторы, например такой: