Повний умовний оператор використовується, якщо потрібно виконати одну з двох груп операторів в залежності від деякої умови.
IF <умова В> THEN BEGIN S1;S2;…;Sn; END ELSE BEGIN P1;P2;…;Pn; END; T1; |
Якщо умова B вірна, то виконуються оператори S1, S2,…, Sn. Якщо умова не вірна, то виконуються оператори P1,P2,…, Pn. Потім виконується оператор T1.
Написана вище конструкція на блок-схемі відображається так:
Завжди виконується одна з двох груп операторів: S1, S2,…, Sn або P1,P2,…, Pn.
Не може бути випадків, коли виконуються обидві групи операторів.
Не може бути випадків, коли не виконується жодна з груп операторів.
У прикладі, в залежності від значення x виконуються різні оператори. Оператори, що виконуються у програмі, виділені жирним.
Програма | Пояснення | На екрані |
---|---|---|
Program p1; Var x:integer; begin X:=-5; IF X<0 THEN BEGIN x:=x+5; writeln(x) END ELSE BEGIN X:=x*2; writeln(x) END; Writeln(‘кінець’) End. | X:=-5; Оскільки X<0 (умова вірна), то виконуються оператори, що стоять після THEN, тобто x:=x+5; writeln(x). Ті оператори, що стоять після ELSE, пропускаються, і потім виконується оператор Writeln(‘кінець’). |
0 кінець |
Program p2; Var x:integer; begin X:=5; IF X<0 THEN BEGIN x:=x+5; writeln(x) END ELSE BEGIN X:=x*2; writeln(x) END; Writeln(‘кінець’) End. | X:=5; Оскільки X>=0 (умова не вірна), то ті оператори, що стоять після THEN, пропускаються, і виконуються оператори, що стоять після ELSE, тобто X:=x*2; writeln(x). Потім виконується оператор Writeln(‘кінець’). |
10 кінець |