Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
374.doc
Скачиваний:
11
Добавлен:
30.04.2022
Размер:
3.16 Mб
Скачать

Оператор с составным условием. При составлении конструкции оператора условной передачи управления могут использоваться составные условия, в которых условия соединены логическими операциями

Таблица 3.2

Основные логические операции

Обозначение

Операции

Пример

!

Отрицание НЕ

!A

&&

Логическое И

A && B

| |

Логическое ИЛИ

A | | B

Оператор условной передачи управления с составной конструкцией условия записывается в виде:

if ((условие1 && условие2) | | условие3) оператор1;

else оператор2;

В данном операторе условной передачи управления при выполнении условия1 и условия2 или условия3 выполняется оператор1, в противном случае оператор2.

Имеется ещё одна форма записи оператора условной передачи управления – условная операция. Синтаксис ее записи имеет вид:

условие ? оператор1 : оператор2;

Результатом выполнения условной операции является выполнение оператора1, если условие истинно, либо оператор2, если условие ложно.

Например, оператор:

max = ( x > y) ? х : у;

присваивает переменной max наибольшее из значений переменных х и у.

Оператор множественного выбора (переключатель). Оператор множественного выбора ( иногда называют переключателем) позволяет провести анализ значения некоторого выражения и в зависимости от его значения выполнить те или иные действия. В общем случае формат записи оператора switch следующий:

switch (выражение выбора)

{

case значение 1: оператор 1

break;

case значение 2: оператор 2

break;

…………………………………..

case значение k: оператор k

break;

[ default: оператор k+1]

}

где оператор default не является обязательным.

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

Значения, указываемые в метках case, должны быть константными выражениями, соответствующие возможным значениям выбора. После значения ставится двоеточие «:», а затем пишется оператор (можно писать составной оператор), который должен выполняться, если выражение приняло указанное в метке значение.

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

break;

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

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

Структура оператора:

goto m;

где goto – ключевое слово (идти к); m – метка оператора, которому передаётся управление.

Оператор, на который необходимо передать управление помечается меткой (m:), после которой ставится двоеточие.

Использование укороченного оператора условной передачи управления со структурой if (B) goto m допускается, но не поощряется правилами структурного программирования, так как создаёт достаточно сложную структуру ветвления с использованием двух меток.

Отладку программ с ветвлениями удобно выполнять с помощью отладочных средств системы С, которые позволяют остановить выполнение программы в любой (критической) точке и с помощью пункта меню Debug –> Evaluate просмотреть значение любой известной в этой точке переменной либо выражения, определяющих направление разветвления. Установить точку наблюдения можно с помощью курсора или пункта меню Debug –> Toggle breakpoint. Достижение точки наблюдения в первом случае осуществляется с помощью пункта меню Run –> go to cursor, а во втором случае с помощью пункта Run –> Run. Достигнуть точки наблюдения можно также с помощью пошагового выполнения программы (клавиши [F7] или [F8], первая из которых при трассировке программы сканирует все вызываемые программой функции, а вторая не делает этого, выполняя всю вызываемую функцию за один шаг).

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