![]() |
![]() |
||
![]() |
9.6. Оператор условного переходаЭтот оператор имеет две разновидности: IF и CASE. 9.6.1. Оператор IFБулевские (логические) выражения могут принимать одно из двух значений: TRUE (истина) либо FALSE (ложь). Простейшими логическими выражениями являются выражения отношения: ![]() Здесь А1 и А2 - выражения, а ОР - операция отношения. Операции отношения в языке паскаль обозначаются так: ![]() Пример. 3<5; 18>=2; 5<= 6; А=В; Общий вид оператора IF: ![]() здесь А - булевское выражение, 6Т - оператор (простой либо составной). Если А - "истина", выполняется оператор ST. Если А - "ложь", то управление сразу передается следующему за ST оператору. Пример. ![]() Если А≠0, то выполняется оператор В: = Х/А; если А = 0, то этот оператор пропускается и управление передается дальше, к следующему оператору. Оператор IF может иметь и такой вид: ![]() здесь А - булевское выражение, ST1, ST2 - операторы. Если А - "истина", выполняется оператор ST1; если А - "ложь" - выполняется оператор ST2, затем в обоих случаях управление передается к следующему оператору. Замечание 1. Перед ELSE нельзя ставить точку о запятой. Пример. IF А <>0 THEN B:=1/A ELSE В:=0; если А≠0, то переменной В присваивается значение 1/А; если А =" 0, то - значение 0. Замечание 2. Синтаксическая неоднозначность оператора ![]() трактуется так: ![]() Пример. ![]() Если A≠0, то для В≠0 С=А/В, а для В=0 С=0, затем выполняется оператор К:=-1. Если А = 0, то управление сразу передается на К: = -1. 9.6.2. Оператор CASE,Общий вид: ![]() здесь N - переключатель (селектор), MI, КI - метки (I = 1, 2, ...), которые отличаются по смыслу от меток, описываемых в разделе LABEL. Переключатель и метки должны быть одного и того же скалярного типа, кроме REAL. Оператор CASE передает управление тому оператору STI, с одной из меток которого совпало значение переключателя N, а затем - па следующий за END оператор. Пример 1. ![]() Если значение I есть 3, то выполняется оператор Х: = Х*Х; а затем управление передастся на оператор А: = В. Замечание. Метки оператора CASE не описываются в разделе LABEL и на них нельзя переходить оператором GOTO.
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
![]() |
|||
© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна: http://informaticslib.ru/ 'Библиотека по информатике' |