Операторы языка С++ Лекция 3






































![Оператор return p Синтаксис оператора: return [<выражение>] p Семантика Оператор return p Синтаксис оператора: return [<выражение>] p Семантика](https://present5.com/presentation/3/164422453_417841756.pdf-img/164422453_417841756.pdf-39.jpg)


Операторы языка С++ Лекция 3
Понятие оператора p Оператором в языках программирования называется синтаксическая конструкция, с помощью которой описывается алгоритмически значимое действие над данными p Под алгоритмической значимостью понимается возможность представить с помощью оператора отдельный шаг алгоритма 1/22/2018 Операторы 2
Операторы языка C++ p Язык С++ включает следующие операторы: n оператор-выражение, n пустой оператор, n составной оператор, n условный оператор, n операторы цикла (с предусловием, с постусловием, с параметром), n операторы передачи управления (безусловной, выхода из цикла, перехода к следующей итерации цикла, возврата из функции), n оператор выбора 1/22/2018 Операторы 3
Операторы языка C++ p Перечисленные операторы относятся к управляющей части структуры программы и обеспечивают организацию процесса вычислений p Кроме того, имеются операторы информационной части структуры программы – операторы описания (констант, переменных, пользовательских типов)
Общий синтаксис операторов p Любой оператор, кроме составного, имеет в качестве завершающего символ «точка с запятой» p Любой оператор может быть снабжен меткой (помечен) p Метка – это уникальный идентификатор, отделяемый от оператора двоеточием p Метки могут использоваться для улучшения читабельности программы, а также для изменения порядка ее выполнения с помощью оператора перехода 1/22/2018 Операторы 5
Оператор-выражение p Синтаксис оператора: n любое выражение, после которого поставлен символ «точка с запятой» , воспринимается компилятором как отдельный оператор p Семантика оператора: n производится вычисление значения выражения, после чего полученное значение удаляется p При вычислении выражения могут возникать побочные эффекты в виде изменения значений некоторых переменных 1/22/2018 Операторы 6
Побочные эффекты p Именно эти побочные эффекты и являются целью использования оператора-выражения p Например: x = y + 6; x ++ < -- y; a && b <= (x *= 4); x * x + 8; p В последнем примере побочный эффект отсутствует 1/22/2018 Операторы 7
Пустой оператор p Синтаксис оператора: n изображается символом «точка с запятой» p Семантика оператора: n не предусматривает выполнения каких-либо действий p Используется в ситуациях, когда синтаксис языка требует присутствия оператора, а по смыслу программы никакие действия не должны выполняться 1/22/2018 Операторы 8
Составной оператор p Синтаксис оператора: n представляется последовательностью операторов, заключенных в фигурные скобки { <оператор 1> <оператор 2> . . . <оператор n>} n единственный оператор, не заканчивающийся символом «точка с запятой» n допускается вложенность составных операторов 1/22/2018 Операторы 9
Составной оператор p Семантика оператора: n объединяет последовательность операторов в один оператор; n позволяет преодолеть ограничения синтаксиса ряда структурных операторов, требующих использования в качестве своего составного элемента только одного единственного оператора p Если внутри составного оператора имеется объявление, то составной оператор становится блоком 1/22/2018 Операторы 10
Блок p Переменные, объявленные внутри блока, имеют область видимости от точки объявления до конца блока p Например: { int x = 1; cout << “x = “ << x << endl; int y; y = ++x; cout << “y = “ << y << endl; } 1/22/2018 Операторы 11
Условный оператор p Синтаксис оператора: if (<выражение>) <оператор 1> [else <оператор 2>] Часть оператора, заключенная в квадратные скобки, является необязательной. При ее наличии условный оператор имеет полную форму, а при отсутствии – сокращенную форму. В качестве <оператор 1> и <оператор 2> могут использоваться любые операторы 1/22/2018 Операторы 12
Условный оператор p Семантика оператора: n Вычисляется значение выражения. n Если получается значение true, то затем выполняется <оператор 1>. n Если получается значение false, то: в условном операторе, имеющем полную форму, выполняется <оператор 2>; в условном операторе, имеющем сокращенную форму, не выполняется больше никаких действий 1/22/2018 Операторы 13
Условный оператор p Отметим, что синтаксис условного оператора требует записи одного единственного оператора до и после ключевого слова else p Если по смыслу алгоритма в той или иной ветви требуется выполнение большего числа операторов, их надо оформить как составной оператор p При вложениях условных операторов каждое else соответствует ближайшему к нему предшествующему if 1/22/2018 Операторы 14
Циклы p Циклом называется часть программного кода, обеспечивающая многократное повторение какой- либо последовательности действий над данными p Повторяющаяся последовательность действий называется телом цикла p Количество повторений определяется условием цикла, которое должно обеспечивать его завершение после конечного числа повторений (итераций) 1/22/2018 Операторы 15
Циклы p Перед началом цикла должна быть выполнена инициализация переменных, изменяющихся в теле цикла p В зависимости от того, выполняется проверка условия цикла до или после выполнения тела цикла, различают циклы с пред- и постусловием 1/22/2018 Операторы 16
Циклы инициализация переменных цикла проверка условия выполнение тела цикла выполнение тела проверка условия цикла Цикл с предусловием Цикл с постусловием 1/22/2018 Операторы 17
Оператор цикла с предусловием p Синтаксис оператора: n while (<условие цикла>) <тело цикла> n <тело цикла> – простой (возможно, пустой) или составной оператор n <условие цикла> – выражение целого типа p Семантика оператора: n вычисляется значение выражения n если оно не равно 0, то выполняется тело цикла n в противном случае выполнение оператора цикла завершается 1/22/2018 Операторы 18
Оператор цикла с предусловием p Условие цикла является условием продолжения p Условие цикла может иметь значение 0 уже на первом шаге – тогда цикл сразу завершится, и тело цикла не будет выполнено ни разу p Тело оператора цикла с предусловием может быть выполнено ноль или более раз 1/22/2018 Операторы 19
Свойства оператора цикла с предусловием p Число шагов для цикла с предусловием заранее не определено p Для завершения цикла после конечного числа шагов необходимо, чтобы выражение, являющееся условием продолжения изменялось на каждой итерации цикла 1/22/2018 Операторы 20
Пример цикла с предусловием p Программа «Синус» p Листинг программы Выполняет вычисление значения синуса угла, заданного в радианах. Значение синуса находится с точностью до 0. 000001. Для вычисления используется формула 1/22/2018 Операторы 21
Оператор цикла с постусловием p Синтаксис оператора: n do <тело цикла> while (<условие цикла>) n <тело цикла> – простой (возможно, пустой) или составной оператор n <условие цикла> – выражение целого типа p Семантика оператора: n выполняются оператор тела цикла, затем вычисляется значение выражения n если оно не равно 0, то снова выполняется тело цикла, в противном случае выполнение оператора цикла завершается 1/22/2018 Операторы 22
Свойства оператора цикла с постусловием p Условие этого цикла также является условием продолжения p Для завершения цикла после конечного числа шагов необходимо, чтобы условие продолжения содержало хотя бы одну переменную, значение которой меняется в теле цикла p Тело оператора цикла с постусловием может быть выполнено один или более раз 1/22/2018 Операторы 23
Применение операторов цикла p Программа «Квадратный корень» p Листинг программы p Цикл с неопределенным числом шагов можно реализовать с помощью любого из двух операторов цикла. p Выбор между ними зависит от того, должно ли тело цикла выполняться хотя бы один раз 1/22/2018 Операторы 24
Пустое тело цикла p Тело цикла может быть пустым оператором, если побочный эффект при вычислении выражения- условия обеспечивает получение нужного результата p Например: long double y=n; while ((y *= --n) && n>1); p Результатом выполнения этого цикла является вычисление n! 1/22/2018 Операторы 25
Оператор итерационного цикла p Обобщением цикла с предусловием является оператор итерационного цикла (оператор for) p В этом операторе инициализация цикла и проверка его условия размещаются в заголовке цикла p Кроме того, заголовок цикла может содержать выражение, вычисляемое после завершения каждой итерации 1/22/2018 Операторы 26
Оператор итерационного цикла p Синтаксис оператора: n for ([<инициализация цикла>]; [<условие цикла>]; [<выражение>]) <тело цикла> n <инициализация цикла> – список (возможно пустой) определений и выражений, разделенных запятыми n <условие цикла > – выражение, имеющее смысл условия продолжения; при его отсутствии оно считается равным 1 n <выражение> – выражение, вычисляемое после завершения каждой итерации n <тело цикла> – простой или составной оператор 1/22/2018 Операторы 27
Примеры p Оператор с пустым списком инициализации, использующий внешние переменные: int i=1; int f=1; for (; i<=n; ++i) f = f * i; p Оператор с переменными i, f, объявленными внутри цикла: for (int i = 1, f=1; i<=n; ++i) f = f * i; p Оператор с переменными i, f, объявленными вне цикла и с пустым телом цикла: for (i = 1, f=1; i<=n; f = f * i++); 1/22/2018 Операторы 28
Оператор итерационного цикла p Семантика оператора: 1. вычисляются значения инициализирующих выражений 2. вычисляется значение выражения-условия 3. если значение выражения-условия отлично от нуля, то выполняется оператор тела цикла; иначе выполнение цикла завершается 4. вычисляется значение выражения, выполняемого после завершения итерации 5. переход к п. 2 1/22/2018 Операторы 29
Области видимости p Переменные, объявленные в инициализирующей части цикла, являются локальными переменными цикла, т. е. областью их действия является цикл p Во вложенных циклах можно объявлять переменные с теми же именами, что и в охватывающих циклах p Программа «Факториал» p Исходный текст программы 1/22/2018 Операторы 30
Оператор выбора p Синтаксис оператора: switch (<выражение выбора>) { case < константное выражение 1>: операторы 1 case < константное выражение 2>: операторы 2 . . . case < константное выражение n>: операторы n default <операторы> } 1/22/2018 Операторы 31
Оператор выбора p Семантика оператора: n Вычисляется выражения выбора и полученное значение последовательно сравнивается с константами в списках констант (значения констант не должны повторяться). n При обнаружении совпадения выполняется соответствующий оператор. n Если совпадения не обнаруживается, то выполняются операторы default – части p Оператор выбора называют также переключателем 1/22/2018 Операторы 32
Пример использования оператора выбора p Программа «Калькулятор» n Считывает два вещественных значения и символ арифметической операции. Выполняет соответствующую операцию и выводит на экран полученное значение. n При вводе недопустимого символа операции выводит на экран предупреждение. p Исходный текст программы 1/22/2018 Операторы 33
Операторы передачи управления p По умолчанию операторы программы выполняются последовательно в порядке их записи p При необходимости изменить этот порядок используют один из операторов передачи управления 1/22/2018 Операторы 34
Операторы передачи управления p В эту группу операторов входят: n оператор безусловной передачи управления (goto), n оператор выхода из цикла или переключателя (break), n оператор перехода к следующей итерации цикла (continue), n оператор возврата из функции (return) 1/22/2018 Операторы 35
Оператор goto p Синтаксис оператора: goto <идентификатор>, где <идентификатор> – имя метки некоторого оператора p Семантика оператора: n управление получает соответствующий помеченный оператор, расположенный в той же функции, что и данный оператор безусловного перехода p Использование оператора goto усложняет чтение и понимание программ 1/22/2018 Операторы 36
Оператор break p Служит для принудительного выхода из цикла или переключателя с передачей управления оператору, следующему за оператором цикла или выбора, соответственно p Для вложенных циклов и/или переключателей выход происходит на предыдущий уровень вложения 1/22/2018 Операторы 37
Оператор continue p Используется в операторах цикла для досрочного завершения текущей итерации и перехода к проверке условия продолжения и следующей итерации p Обычно используется при наличии в теле цикла завершающей части, которая может не выполняться при некоторых условиях 1/22/2018 Операторы 38
Оператор return p Синтаксис оператора: return [<выражение>] p Семантика оператора: n Возвращает управление вызывающей функции или операционной системе (если используется в функции main) n Выражение, входящее в состав этого оператора, должно иметь тип, совместимый с типом содержащей его функции n Этот оператор может отсутствовать в функциях с типом void 1/22/2018 Операторы 39
Правила оформления программ p Используемые имена должны носить содержательный характер, т. е. быть осмысленными p Структура программы должна быть отражена в структуре текста: текст записывается с отступами p Для удобства чтения текста программы он должен быть снабжен комментариями 1/22/2018 Операторы 40
Конец лекции 1/22/2018 Операторы 41

