Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор это средство ветвления вычислительного процесса.
Оператор | Модуль | Назначение | Пример |
IF | SYSTEM | Предназначен для ветвления процесса выполнения программы IF <условие> THEN <оператор_1> ELSE <оператор_2>; IF, THEN, ELSE если, то, иначе; |
VAR X, Y, MAX: INTEGER; BEGIN ... IF X>MAX THEN Y:=MAX ELSE Y:=X; ... |
Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина, т.е. условие выполняется), то выполняется <оператор_1>, а <оператор_2> пропускается; если результат есть FALSE (ложь, т.е. условие не выполняется), наоборот, <оператор_1> пропускается, а выполняется <оператор_2>.
Часть ELSE <оператор_2> условного оператора может быть опущена, тогда получается краткая форма записи оператора IF. Краткая форма записи:
IF <условие> THEN <оператор>;
Тогда при выполнении условия выполняется <оператор>, в противном случае этот оператор пропускается.
Program Oper_If; Var a, b : Integer; c : Char; BEGIN Write('Введите два числа: '); Readln(a,b); Write('Сложить их (y/n)? '); Readln(c); If c='y' Then Begin a:=a+b; Writeln('Результат = ', a); End Else Writeln('Не очень-то и хотелось.'); END.
NOT логическое НЕ (логическое отрицание);
AND логическое И (логическое умножение);
OR логическое ИЛИ (логическое сложение).
В отличие от многих других языков программирования в Turbo Pascal логические операции имеют более высокий приоритет, чем операции отношения. В связи с этим, в сложных логических выражениях обычно необходимо расставлять скобки. Выражение типа:
IF A = B AND C < D THEN ...
вызовет сообщение о синтаксической ошибке, так как сначала выполнится операция B AND C. Правильным будет выражение:
IF (A = B) AND (C < D) THEN ...
Условие выражение логического типа (отношение одного значения или выражения к другому), которое можно заменить на логическую переменную (переменная типа Boolean). Приведённые ниже записи равнозначны между собой:
Var a, b : Integer; ... If a > b Then Writeln(a); |
Var a, b : Integer; u : Boolean; ... u:=a > b; If u Then Writeln(a); |
На числовой оси выделен диапазон значений (от 3 до 10, за исключением 5). Составить условие для этого диапазона.
Математическая форма условия: или .
Запись условий для IF:
((3<=x)and(x<5)) or ((5<x)and(x<=10)) или (3<=x) and (x<=10) and (x<>5)
Составной оператор это группа исполнительных операторов, заключённых между BEGIN и END;, которые воспринимаются компилятором как один <большой> оператор (см. пример программы).