Найти тему
Deoships

Условный оператор и оператор выбора в Паскале

Оглавление

Условный оператор if-else

Условный оператор if служит для организации ветвления в программе на языке Паскаль.

If – если, then – то, else – иначе.

Полная форма:

if a = b then begin //действия
end
else begin //действия
end;

Неполная форма:

if a = b then begin //действия
end;

После else нельзя ставить условие, эта часть выполняется тогда, когда условие после if неверно. Перед else не ставится точка с запятой, поскольку это ключевое слово обозначает не начало нового оператора, а его вторую часть.

Слова begin и end (их называют также «операторные скобки») ограничивают блок-1и блок-2; если внутри блока всего один оператор, эти «скобки» можно не писать.

В условных операторах можно использовать сложные условия, которые строятся из простых отношений (<, <=, >, >=, =, <>) с помощью логических операций not («НЕ»,отрицание), and («И», одновременное выполнение двух условий) и or («ИЛИ», выполнение хотя бы одного из двух условий).

В сложном условии сначала выполняются действия в скобках, потом – not, затем – and, затем – or и, наконец, отношения.

Операции равного уровня (приоритета) выполняются последовательно слева направо.

Поскольку отношения в Паскале имеют низший приоритет, в сложном условии их приходится брать в скобки:

if (a = b) or (b < c) and (c <> d) then begin //действия end;

Сложные условия и вложенные условия

Вложенный if аналогичен логической операции and. Например,

if (x > 5) and (x < 10) then Writeln('х попадает в интервал');

аналогично

if (x > 5) then f (x < 10) then Writeln('х попадает в интервал');

Однако два подряд идущих if не аналогичны or:

if (x < 5) or (y < 5) then
Writeln('Хотя бы одна из переменных меньше 5');

не аналогично

if (x < 5) then Writeln('Хотя бы одна из переменных меньше 5'); if (y < 5) then
Writeln('Хотя бы одна из переменных меньше 5');

Поскольку если x<5 и y<5 одновременно, то будет выведено две строки. Кроме того, если в теле условного оператора меняется значение x и y, проверка истинности второго условия может быть искажена, даже если условия в этих if взаимоисключающие.

Оператор выбора (CASE)

Оператор выбора (варианта) используется в тех случаях, когда в зависимости от значения какого-либо выражения необходимо выполнить один из нескольких операторов.

Оператор case состоит из выражения (селектора) и списка операторов, каждому из которых предшествует одна или более констант (они называются константами выбора) или ключевое слово else. Селектор должен иметь порядковый тип размера байт или слово.

Таким образом, строковый тип и тип LongInt являются недопустимыми типами селектора.

Все константы выбора должны быть уникальными и иметь порядковый тип, совместимый с типом селектора.

Оператор вывода имеет следующую форму записи:

CASE <выражение> OF

константа 1: оператор 1;

константа 2: оператор 2;

................................................

константа n: оператор n;

ELSE оператор;

END;

Оператор case приводит к выполнению оператора, которому предшествует константа выбора, равная значению селектора или диапазону выбора, в котором находится значение селектора. Если такой константы выбора или такого диапазона выбора не существует, то выполняется оператор, следующий за ключевым словом else. Если ветвь else отсутствует, то не выполняется никакой оператор.

В операторе выбора в качестве константы допускается использование списка констант. В качестве констант также могут использоваться перечислимые и ограниченные типы данных, но число имен не должно превышать 255.

Пример:

case I of

0, 2, 4, 6, 8: Writeln(‘четное число’);

1, 3, 5, 7, 9: Writeln(‘нечетное число’);

10..100 : Writeln(‘между 10 и 100’);

else Writeln(‘отрицательное или больше чем 100’);

end;