Изучение принципов алгоритмического программирования на языке Pascal

       

Операторы условного ветвления


Операторы условного ветвления представлены в Паскале двумя разновидностями. Более универсальной разновидностью является оператор «IF-THEN-ELSE», позволяющий проводить ветвление программы в зависимости от значения произвольного выражения, имеющего логический тип. Такой оператор может иметь только положительную ветвь (THEN), может – положительную и отрицательную ветви. Варианты использования оператора проиллюстрированы на рис. 4.



       Рис. 4. Условный оператор If-Then-Else

В обоих случаях вначале происходит проверка значения выражения. Если выражение истинно, выполняется оператор в секции Then. Если выражение ложно, то в первом случае управление передаётся сразу оператору, следующему в программе за оператором If-Then, а во втором – вначале выполняется оператор в секции Else. Если требуется поместить в секцию then или else последовательность операторов, её следует заключить в операторные скобки Begin-End.

Вторая разновидность условного оператора – оператор многовариантного ветвления. Такой оператор имеет смысл использовать, если требуется проанализировать значение одного выражения порядкового типа (целый, символьный, перечисляемый) на соответствие различным вариантам значений.

Синтаксис оператора следующий:

case

<выражение>

of

  <знач1> : <действие1>;

  <знач2>..<знач3> : <действие2>;

  <знач4>,<знач5>,<знач6> : <действие3>;

  <знач7>,<знач8>..<знач9> : <действие4>;

[else

  <действиеи>;]

end;

При выполнении этого оператора, сначала происходит вычисление выражения. Далее, результат выражения последовательно сопоставляется с указанными до символов двоеточия значениями. Значения могут иметь вид одиночных констант, а также списков и диапазонов.

Константы и элементы диапазонов и списков должны иметь тот же тип, что и выражение. В разных строках не могут быть описаны пересекающиеся множества значений.

Если ни один из предложенных вариантов не подошёл, управление передаётся секции Else. Если последняя отсутствует – оператору, следующему за Case.

Если в одной из ветвей оператора Case требуется выполнить несколько операторов подряд, эти операторы должны быть заключены в операторные скобки Begin-End.

Пример использования оператора Case:

case C of

  #32: Writeln (’Space’);

  ’0’..’9’: Writeln (’Digit’);

  ’A’..’Z’, ’a’..’z’: Writeln (’Letter’);

else Writeln (’Unknown’);

end;




Содержание раздела