Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Операторы условных и безусловных переходов.

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

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

Для удобства, а не по необходимости, в C++ есть три разных оператора цикла — while, do while и for.

1) Цикл с предусловием имеет вид: while (выражение) оператор.

Рис.1 Структурная схема цикла с предусловием

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

Пример (программа находит все делители целого положительного числа):

2) Цикл с постусловием имеет вид: do оператор while (выражение).

Рис.2 Структурная схема цикла с постусловием

Сначала выполняется простой или составной оператор, составляющий тело цик­ла, а затем вычисляется выражение. Если оно истинно (не равно fаlse), тело цик­ла выполняется еще раз. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управле­ния.

Пример (программа осуществляет проверку ввода):

3) Цикл с параметром.

Цикл с параметром имеет следующий формат: for (инициализация: выражение: модификации) оператор. Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько опе­раторов, разделенных запятой (операцией «последовательное выполнение»).

Пример (оператор, вычисляющий сумму чисел от 1 до 100):

Областью действия переменных, объявленных в части инициализации цикла, яв­ляется цикл. Инициализация выполняется один раз в начале исполнения цикла. Выражение определяет условие выполнения цикла. Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла.

Операторы условных и безусловных переходов.

1) Условный оператор if

Данный оператор используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 3. Формат оператора: if (выражение) оператор_1; [else оператор_2;].

Оператор if позволяет определить действие при истинном условии, т.е. если логическое_выражение имеет значение true, выполняется составной_оператор_1, а если логическое_выражение имеет значение false, то управление передается следующему оператору после оператора if.

Рис.3 Структурная схема оператора if

Пример:

2) Условный оператор двойного выбора if…else

Оператор if…else применяется для того чтобы в зависимости от конкретных значений исходных данных обеспечить выполнение двух разных составных операторов. Структурная схема оператора приведена на рис. 4. Формат оператора: if (логическое_выражение) {составной_оператор_1;} else {составной_оператор_2; }.

Рис.4 Структурная схема оператора if…else

Оператор if else позволяет определить программисту действие, когда условие истинно и альтернативное действие, когда условие ложно, т.е. если логическое_выражение имеет значение true, то выполняется составной_оператор_1, а если логическое_выражение имеет значение false, то выполняется составной_оператор_2. Так как логическое_выражение не может одновременно иметь значения true и false, то составной_оператор_1 и составной_оператор_2 не могут выполняться оба. После выполнения составной_оператор_1 или составной_оператор_2 управление передается следующему оператору после оператора if.

Пример:

3) Оператор безусловного перехода

Оператор goto имеет формат: goto метка. В теле той же функции должна присутствовать ровно одна конструкция вида: метка: оператор.

Оператор goto передает управление на помеченный оператор. Метка — это обыч­ный идентификатор, областью видимости которого является функция, в теле ко­торой он задан.

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

В остальных случаях для записи любого алгоритма существуют более подходя­щие средства, а использование goto приводит только к усложнению структуры программы и затруднению отладки. Применение goto нарушает принципы структурного и модульного программирования, по которым все блоки, из кото­рых состоит программа, должны иметь только один вход и один выход. В любом случае не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию пере­менных, на операторы, расположенные после нее, поскольку в этом случае ини­циализация не будет выполнена.

Пример:

Оператор выбора.

Структура множественного выбора (switch) применяется для того чтобы в зависимости от конкретных значений исходных данных обеспечить выполнение множества разных составных операторов. Структурная схема оператора приведена на рис. 3. Формат оператора:

Рис.3 Структурная схема оператора выбора

Оператор switch позволяет определить программисту действие из списка возможных вариантов, т.е. если значение выражения совпадает со значением константное_выражение_1, то выполняется составной оператор_1, если со значением константное_выражение_2, то выполняется составной оператор_2 и т.д. Если совпадения не произошло, выполняется составной_оператор_по_умолчанию, расположенный после слова default. Выполнение не может переходить на следующий раздел switch.

Пример (программа реализует простейший калькулятор на 4 действия):

Оператор switch может содержать любое количество разделов switch, а каждый раздел может иметь одну или несколько меток case. Однако две метки case не могут содержать одно и то же постоянное значение. Выполнение списка операторов в выбранном разделе switch начинается с первого оператора и продолжается по списку, обычно до достижения оператора перехода, такого как break, goto case, return или throw (оператор break выполняет выход из самого внутреннего из объемлющих его операторов switch; оператор goto выполняет переход на указанную после него метку, обычно это метка case одной из нижележащих ветвей оператора switch; оператор return выполняет выход из функции, в теле которой он записан). В этой точке управление передаётся за пределы оператора switch или к другой метке case. Не допускается, чтобы выполнение, начавшись в одном разделе, продолжалось в следующем.



<== предыдущая лекция | следующая лекция ==>
дәріс. Әлсіз магнитті кендерді бөлгіштер | Шаг 2. Определим условия, способствующие мотивации работой
Поделиться с друзьями:


Дата добавления: 2016-12-31; Мы поможем в написании ваших работ!; просмотров: 3103 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2214 - | 2048 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.