Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Titulnye_listy (Восстановлен) (Восстановлен).docx
Скачиваний:
2
Добавлен:
26.09.2019
Размер:
325.79 Кб
Скачать

2.12 Операторы ветвления

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса [7].

Структура оператора условия в языке Паскаль имеет следующий вид:

If <условие> then <оператор 1> else <оператор 2>;

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение, если результат вычисления имеет значение истина, то выполняется оператор или группа операторов следующих за словом then, если же выражение имеет значение ложь, то выполняется оператор следующий после слова else [7].

После <оператора 1> перед словом else точка с запятой не ставится.

Оператор выбора в языке Паскаль имеет следующий вид:

case<выражение>of

<оператор 1>;

<оператор 2>;

else<оператор 3>;

Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит так называемый ключ выбора (или селектор) – выражение любого типа (кроме типов real и string). Оператор выбора работает следующим образом. Сначала вычисляется значение выражения, стоящее после зарезервированного слова case, а затем выполняется оператор (или составной оператор), соответствующий результату вычисления выражения [8].

Си имеет условный оператор, структурно аналогичный Паскалю. Отличие состоит в том, что условие должно быть записано в круглых скобках, а вместо ключевых слов begin и end используются фигурные скобки {}:

if (<логическое выражение>) <оператор 1>else <оператор 2>;

В языке Си синтаксис оператора выбора следующий:

switch (<i>) {

<case const1> : <оператор 1>; [break];

<case const2> : <оператор 2>; [break];

default : <оператор def.>; [break];

}

Здесь i — выражение-селектор, которое обязано иметь приводимый к целому тип, каждая ветвь исполнения начинаются с ключевого слова case, за ним следует значение выражения, при котором должна выполняться данная ветвь. Особенностью языка Си является то, что в нём переключатель трактуется именно как команда перехода по вычисляемой метке, а роль меток играют заголовки ветвей (case значение :). Чтобы после завершения кода ветви произошёл выход из оператора переключателя, используется специальная команда break. Если такой команды в ветви нет, после исполнения кода выбранной ветви начнётся исполнение кода следующей за ней. Эта особенность может использоваться для оптимизации, хотя может служить причиной труднообнаруживаемых ошибок (если программист случайно пропустит break, компилятор не выдаст ошибки, но программа будет выполняться неверно). Ветвь default исполняется тогда, когда среди прочих ветвей не нашлось ни одной подходящей [9].

2.13 Операторы цикла

Цикл [10] – разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Последовательность инструкций, предназначенная для многократного исполнения, называется телом цикла. Единичное выполнение тела цикла называется итерацией. Переменная, хранящая текущий номер итерации, называется счётчиком итераций цикла или просто счётчиком цикла.

В Паскале как и в Си существует три вида циклов [4,5]:

- for..to/downto..do (Паскаль) и for (Си);

- while .. do (Паскаль) и while (Си);

- repeat .. until (Паскаль) и do .. while (Си).

Рассмотрим цикл for:

for <идентификатор>:=<начальное значение> to/downto <конечное значение> begin операторы end; (Паскаль)

for ([инициализация];[условие продолжения цикла];[что выполняем в конце цикла]) {[тело цикла]};(Си)

Инициализация – оператор или операторы, выполняющиеся до первой проверки условия продолжения цикла. Выполняется только один раз. В отличие от языка Паскаль в Си переменную-счетчик можно описывать в инициализации.

Второе выражение – для проверки условия; оно производится перед каждым возможным выполнением тела цикла. Когда выражение становится ложным, цикл завершается.

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

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

Цикл for в Си очень похож на цикл for в Паскале, однако в Си он является более гибким.

Рассмотрим цикл while:

while (<логическое выражение>) do <тело цикла>; (Паскаль)

while (<логическое выражение>) {< тело цикла >}; (Си)

Оператор while организует повторение тела цикла до тех пор, пока логическое выражение не примет значение ложь. Оператор while - оператор цикла с предусловием. Истинность логического выражения определяется перед входом в цикл. Следовательно возможна ситуация когда тело цикла не выполнится ни разу.

Если необходимо обеспечить выполнение тела цикла хотя бы один раз, используют оператор цикла с постусловием. В языке Паскаль – repeat .. until, а в Си – do .. while.:

repeat <тело цикла> until (<логическое выражение>);(Паскаль)

do {< тело цикла >}while(<логическое выражение>); (Си)

В языке Паскаль цикл с постусловием – repeat – until. Цикл выполняется пока условие ложно.

В языке Си цикл с постусловием – do – while. Цикл выполняется пока условие истинно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]