Tw-city.info

IT Новости
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Операторы в программировании c

1. Операторы языка C++

Операторы управляют процессом выполнения программы. Набор операторов языка С++ содержит все управляющие конструкции структурного программирования.

Составной оператор ограничивается фигурными скобками. Все другие операторы заканчиваются точкой с запятой.

    Пустой оператор – ;

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

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

  • Оператор обработки исключений
    try >catch ( ) >catch ( ) >.catch ( ) >
  • Условный оператор
    if ( ) [else ]
  • Оператор-переключатель
    switch ( ) < case : case : .case : [default: ] >

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

  • Оператор цикла с предусловием
    while ( )
  • Оператор цикла с постусловием
    dowhile ;

    В языке C++ этот оператор отличается от классической реализации цикла с постусловием тем, что при истинности выражения происходит продолжение работы цикла, а не выход из цикла.
    Оператор пошагового цикла
    for ([ ]; [ ]; [ ])

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

    Оператор пошагового цикла в языке С++ является гибкой и удобной конструкцией, поэтому оператор цикла с предусловием while используется в языке С++ крайне редко, т.к. в большинстве случаев удобнее пользоваться оператором for .
    Оператор разрыва
    break
    ;

    Оператор разрыва прерывает выполнение операторов while , do , for и switch . Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор разрыва записан внутри вложенных операторов while , do , for , switch , то он завершает только непосредственно охватывающий его оператор.
    Оператор продолжения
    continue
    ;

    Оператор продолжения передает управление на следующую итерацию в операторах цикла while , do , for . Он может содержаться только в теле этих операторов. В операторах do и while следующая итерация начинается с вычисления условного выражения. В операторе for следующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.
    Оператор возврата
    return [ ];

    Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции, непосредственно следующую за оператором вызова. Значение выражения, если она задано, вычисляется, приводится к типу, объявленному для функции, содержащей оператор возврата, и возвращается в вызывающую функцию. Если выражение опущено, то возвращаемое функцией значение не определено.

    С формальной точки зрения операторы break , continue и return не являются операторами структурного программирования. Однако их использование в ограниченных количествах оправдано, когда они упрощают понимание программы и позволяют избегать больших вложенных структур. Например, мы проверяем входные данные на аномалии. Если не использовать эти операторы, то всю обработку придется вложить в условный блок, что ухудшает читабельность программы. Вместо этого можно написать небольшой условный блок, который организует выход из функции при неверных исходных данных.

    Ввод/вывод не является частью языка С++ , а осуществляется функциями, входящими в состав стандартной библиотеки. Для подробной информации см. лекцию 4.

    2. Структура программы

    Программа на языке С++ состоит из директив препроцессора, указаний компилятору, объявлений переменных и/или констант, объявлений и определений функций.

    2.1. Объявление переменной

    Объявление переменной задаёт имя и атрибуты переменной. Атрибутами переменной могут быть тип, количество элементов (для массивов), спецификация класса памяти, а также инициализатор. Инициализатор – это константа соответствующего типа, задающая значение, которое присваивается переменной при создании.

    Объявление переменной имеет следующий синтаксис: [ ] [= ] [, [= ] . ];

    Основные операторы языка С++

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

    Цикл – задает многократное выполнение оператора.

    Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения. Структурное программирование также называют программированием без goto, т. к. частое использование операторов перехода затрудняет понимание логики работы программы. Но иногда встречаются ситуации, в которых применение операторов перехода, наоборот, упрощает структуру программы.

    Операторы управления работой программы называют управляющими конструкциями программы. К ним относят:

    • составные операторы;
    • операторы выбора;
    • операторы циклов;
    • операторы перехода.

    Любое выражение, заканчивающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении этого выражения. Частным случаем выражения является пустой оператор ;.

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

    Операторы выбора — это условный оператор и переключатель.

    1. Условный оператор имеет полную и сокращенную форму.

    if (выражение-условие ) оператор; //сокращенная форма

    В качестве выражения-условия могут использоваться арифметическое выражение, отношение и логическое выражение. Если значение выражения-условия отлично от нуля (т. е. истинно), то выполняется оператор. Например:

    Если значение выражения-условия отлично от нуля, то выполняется оператор1, при нулевом значении выражения-условия выполняется оператор2.Например:

    2.Переключатель определяет множественный выбор.

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

    Читать еще:  Объектно ориентированное программирование язык программирования c

    Результаты работы программы:

    1. При вводе 1 будет выведено:

    The number is one

    1. При вводе 2 будет выведено:
    1. При вводе 3 будет выведено:
    1. При вводе 4 будет выведено:

    4 is very beautiful!

    1. При вводе всех остальных чисел будет выведено:

    The end of work

    1) итерационные циклы;

    2) арифметические циклы.

    Группа действий, повторяющихся в цикле, называется его телом. Однократное выполнение цикла называется его шагом.

    В итерационных циклах известно условие выполнения цикла.

    В качестве чаще всего используется отношение или логическое выражение. Если оно истинно, т. е. не равно 0, то тело цикла выполняется до тех пор, пока выражение-условие не станет ложным.

    Тело цикла выполняется до тех пор, пока выражение-условие истинно.

    выражение_1 и выражение_3 могут состоять из нескольких выражений, разделенных запятыми. Выражение_1 — задает начальные условия для цикла (инициализация). Выражение-условие> определяет условие выполнения цикла, если оно не равно 0, цикл выполняется, а затем вычисляется значение выражения_3. Выражение_3 — задает изменение параметра цикла или других переменных (коррекция). Цикл продолжается до тех пор, пока выражение-условие не станет равно 0. Любое выражение может отсутствовать, но разделяющие их « ; » должны быть обязательно.

    Примеры использования цикла с параметром.

    1) Уменьшение параметра:

    2) Изменение шага корректировки:

    3) Возможность проверять условие отличное от условия, которое налагается на число итераций:

    4) Коррекция может осуществляться не только с помощью сложения или вычитания:

    5) Можно использовать несколько инициализирующих или корректирующих выражений:

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

    1) break — оператор прерывания цикла.

    Т. е. оператор break целесообразно использовать, когда условие продолжения итераций надо проверять в середине цикла.

    2) continue — переход к следующей итерации цикла. Он используется, когда тело цикла содержит ветвления.

    3) Оператор goto

    Оператор goto имеет формат: goto метка;

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

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

    Применение goto нарушает принципы структурного и модульного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и только один выход.

    Нельзя передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию, на операторы, которые стоят после инициализации. Пример:

    В этом примере при переходе на метку m не будет выполняться инициализация переменных a , b и k.

    4) Оператор return – оператор возврата из функции. Он всегда завершает выполнение функции и передает управление в точку ее вызова. Вид оператора:

    BestProg

    Базовые операторы

    Содержание

    1. Какие виды или категории операторов существуют в языке C#?

    В языке C# существуют следующие категории операторов:

    • арифметические операторы;
    • операторы отношения;
    • логические операторы;
    • операторы присваивания;
    • поразрядные операторы;
    • специальные операторы для особых случаев.

    2. Какие операторы принадлежат к категории арифметических операторов?

    В языке C# существуют следующие арифметические операторы:

    3. Примеры использования операторов сложения ( + ), вычитания ( — ), умножения ( * ) и деления ( / ).

    Операторы сложения ( + ), вычитания ( — ), умножения ( * ) и деления ( / ) можно применять к любому встроенному числовому типу данных.

    Пример 1. Операции над переменными целых типов.

    Важно: деление целых чисел дает результат целого типа.

    Пример 2. Операции над переменными, где есть данные с плавающей запятой.

    Пример 3. Операции над переменными смешанных числовых типов.

    Если один из операндов имеет тип с плавающей запятой, а второй операнд имеет целый тип, то результатом будет тип с плавающей запятой.

    4. Какие особенности использования оператора вычисления остатка от деления ( % )?

    Оператор % применяется для вычисления остатка при делении двух чисел. В отличие от языка C/C++ оператор % может быть применен к данным с плавающей запятой.

    Пример.

    5. Примеры применения операторов инкремента ( ++ ) и декремента ( — ).

    Оператор инкремента ( ++ ) увеличивает значение операнда на 1 .

    Оператор инкремента i++ или ++i есть аналогичен оператору

    Оператор декремента ( ) уменьшает значение операнда на 1 .

    Оператор декремента i или i аналогичен оператору

    Пример 1.

    Пример 2. Использование операции инкремента и декремента в выражении.

    Пример 3.

    6. Какие особенности применения операторов отношения в C# ?

    Операторы отношения применяются для сравнения значений двух операндов между собой. Результатом работы операторов отношения есть значение истины ( true ) или лжи ( false ).

    В языке C# введены следующие операторы отношения:

    Пример.

    7. Какие особенности применения логических операторов в языке C# ?

    Операнды логических операций должны относиться к типу bool .

    В языке C# к логическим относятся следующие операции:

    Пример применения логических операций.

    8. Какие преимущества дает использование сокращенных логических операторов && и || ?

    Сокращенные логические операции && и || работают так же как и обычные логические операции & (логическое « И «) и | (логическое « ИЛИ «).

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

    Например. Рассмотрим логическое « ИЛИ » (оператор || ). Если первый операнд равен true , тогда нет смысла вычислять второй операнд, поскольку все выражение будет равно true .

    Так же в логическом « И » (оператор && ). Если первый операнд равен false , тогда все выражение будет равно false . Таким образом, нет необходимости вычислять второй операнд.

    За счет этого происходит сокращение времени обработки длинных логических выражений, которые содержат операции « И » и « ИЛИ «.

    Пример.

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

    9. Какие особенности применения оператора присваивания в программе?

    Простейший оператор присваивания обозначается символом ‘ = ‘ (равно). Общая форма оператора присваивания:

    Оператор присваивания может создавать «цепочку» присваиваний.

    Пример.

    В вышеприведенном примере значение ‘ 0.00 ‘ присваивается сначала переменной z , потом переменной y , потом переменной x .

    Оператор присваивания может быть составным.

    10. Как работают сокращенные (составные) операторы присваивания?

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

    Читать еще:  Программирование microsoft visual basic

    В C# существуют следующие сокращенные операторы присваивания для арифметических и логических операций:

    Примеры применения сокращенных операторов присваивания.

    11. Какие особенности применения поразрядных операторов в языке C# ?

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

    В C# существуют следующие поразрядные логические операции:

    Поразрядные операторы с двоичными единицами и нулями работают согласно нижеследующей таблице.

    Пример.

    12. Какие особенности применения операторов сдвига в C# ?

    Операторы сдвига могут применяться только к целым типам.

    Для выполнения сдвига двоичных разрядов в C# предусмотрено два оператора:

    Общая форма операторов сдвига:

    где число_бит – число двоичных разрядов, на которые сдвигается указанное значение.

    Пример.

    Операция сдвига влево на n разрядов множит число на 2 в степени n . Сдвиг вправо на n разрядов означает деление на 2 в степени n .

    Операторы языка программирования

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

    Каждый оператор в любом языке программирования имеет определенный синтаксис и семантику. Под синтаксисом оператора понимается система правил (грамматика), определяющая его запись с помощью элементов алфавита данного языка, в который наряду с различными символами входят, например, и служебные слова. Под семантикой оператора понимают его смысл, т.е. те действия, которым соответствует запись того или иного оператора. Например, запись i := i + 1 является примером синтаксически корректной записи оператора присваивания в языке Pascal, семантика которого в данном случае такова: извлечь значение ячейки памяти, соответствующей переменной i, сложить его с единицей, результат записать в ту же ячейку памяти.

    В большинстве процедурных языков программирования набор операторов практически одинаков и состоит из оператора присваивания, операторов выбора, операторов цикла, оператора вызова процедуры, операторов перехода. Иногда выделяют также пустой (отсутствие действия) и составной операторы. Многие операторы являются способом представления определенных алгоритмических конструкций (см. “Алгоритмические конструкции) в языке программирования. Рассмотрим группы операторов подробнее, используя синтаксис языка Pascal.

    Оператор присваивания

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

    В общем виде оператор присваивания записывается так:

    Например, в языке Pascal в качестве знака присваивания используется комбинация символов :=. В ряде других языков — знак равенства.

    Результатом выполнения оператора присваивания является изменение состояния данных: все переменные, отличные от переменной, стоящей в левой части оператора присваивания, не меняют своего значения, а указанная переменная получает значение выражения, стоящего в правой части оператора присваивания. В большинстве случаев требуется, чтобы тип выражения совпадал с типом переменной. Если это не так, то оператор либо считается синтаксически некорректным, либо производится преобразование типа выражения к типу переменной (см. “Типы данных).

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

    По-другому эти операторы называют условными операторами. Условные операторы используются для программирования алгоритмов, содержащих алгоритмическую конструкцию ветвление.

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

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

    if B then S1 else S2

    Если выражение B, которое вычисляется в начале выполнения условного оператора, имеет значение “истина”, то будет выполняться оператор S1, в противном случае — оператор S2. Операторы S1 и S2 могут быть составными.

    Алгоритмическая структура неполного ветвления реализуется с помощью неполного условного оператора, который имеет вид:

    Здесь B — логическое выражение, а S — произвольный оператор. Оператор S будет выполняться, если выражение B окажется истинным.

    Если условный оператор реализует всего две ветви выбора (“да” и “нет”), то с помощью оператора варианта (case-оператора) можно запрограммировать многоветвящуюся структуру. Оператор варианта имеет вид:

    Выполняется данный оператор так: значение выражения E ищется среди перечисленных в записи оператора значений V1, V2, …, Vn, и если такое значение находится, то выполняется соответствующий оператор S1, S2, …, Sn.

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

    Пример 1. В статье “Алгоритмические конструкции” 2 был приведен пример записи алгоритма решения обобщенного квадратного уравнения с помощью конструкций ветвления. Приведем фрагмент программы на языке Pascal, реализующий этот же алгоритм:

    if c = 0 then writeln(‘x — любое’)

    else writeln(‘нет корней’)

    if D 0 do begin

    В цикле с постусловием тело цикла предшествует условию В. В отличие от цикла с предусловием здесь В — это условие окончания цикла. Оператор цикла с постусловием в Паскале имеет вид:

    repeat S until B

    При такой организации цикла тело цикла S хотя бы один раз обязательно выполнится.

    Практически во всех процедурных языках существует оператор цикла c параметром. Схематично его можно представить так:

    for E1 to E2 step E3 do S

    Здесь значение переменной (параметра цикла) меняется от значения выражения E1 до E2 с шагом E3. Для каждого такого значения параметра цикла выполняется оператор S. В языке Pascal понятие шага в описании этого оператора отсутствует, а сам шаг для целочисленного параметра цикла может быть равен либо 1, либо –1. Оператор “цикл с параметром” используется для программирования циклов с заданным числом повторений. Для программирования итерационных циклов (число повторений которых заранее неизвестно) он не годится.

    Оператор вызова процедуры

    В статье “Подпрограммы” подробно рассказывается о таком виде подпрограмм, как процедуры. Стандартные подпрограммы языка программирования, которые входят в одну из библиотек подпрограмм, а также пользовательские подпрограммы, описанные внутри данного блока, вызываются с помощью оператора вызова процедуры:

    Здесь E1,E2,…,En — переменные или выражения, представляющие собой фактические параметры обращения к процедуре. Наиболее часто используемыми стандартными процедурами являются процедуры ввода и вывода данных (read и write в Pascal).

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

    Пример 3. Пусть у нас описана процедура abc:

    procedure abc(a,b:integer;var c: integer);

    Вызов этой процедуры abc(2,3,x) эквивалентен блоку действий:

    Читать еще:  Безопасность айфона 5s
    Операторы перехода

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

    Метка в данном случае соответствует началу того оператора, с которого должно продолжиться выполнение программы. Такой оператор позволяет записывать в языке программирования алгоритмы, имеющие сколь угодно сложную структуру. Но зачастую использование безусловного перехода неоправданно, т.к. ведет к запутанной, плохо читаемой программе. Практически единственным осмысленным применением оператора goto является выход сразу из нескольких вложенных циклов, например, при обработке двухмерных массивов.

    Пример 4. Пусть нам требуется определить, есть ли в двухмерном массиве a элемент, равный 0:

    if a[i,j] = 0 then begin

    1: if b then write(‘есть’) else write(‘нет’);

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

    then writeln(‘Мне ‘,k,’ года’)

    else writeln(‘Мне ‘,k,’ лет’)

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

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

    Изучение условного и особенно составного оператора — хороший повод поговорить с учениками о стиле написания программ. Для языка Pascal существует несколько распространенных способов записи структурированных программ, но все они содержат отступы для размещения вложенных структур. Важны для записи программ и комментарии.

    Управляющие операторы. Структуры данных языка С

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

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

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

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

    Нельзя передавать управление извне внутрь цикла . Выход из цикла возможен как при выполнении условия выхода, так и по операторам break , return или безусловного перехода .

    Цикл с предусловием (while)

    Цикл с предусловием реализует структурную схему , приведенную на рис. 3.3 (а), и имеет вид:

    while ( выражение ) оператор;

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

    Пример (программа печатает таблицу значений функции y=x 2 +1 во введенном диапазоне):

    Цикл с постусловием (do while)

    Цикл с постусловием реализует структурную схему , приведенную на рис. 3.3 (б), и имеет вид:

    do оператор while выражение;

    Сначала выполняется простой или составной оператор , составляющий тело цикла, а затем вычисляется выражение. Если оно не равно 0 (истинно), тело цикла выполняется еще раз, и так далее, пока выражение не станет равным нулю или в теле цикла не будет выполнен какой-либо оператор передачи управления . Тип выражения должен быть арифметическим или приводимым к нему.

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

    Цикл с параметром (for)

    Цикл с параметром имеет следующий формат:

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

    Выражение определяет условие выполнения цикла: если оно не равно 0 (истинно), цикл выполняется.

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

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

    Пример (программа печатает таблицу значений функции y=x 2 +1 во введенном диапазоне):

    Операторы передачи управления

    В С++ есть пять операторов, изменяющих естественный порядок выполнения вычислений:

    • оператор выхода из цикла и переключателя break ;
    • оператор перехода к следующей итерации цикла continue ;
    • оператор возврата из функции return ;
    • оператор безусловного перехода goto ;
    • оператор генерации исключения throw .

    Оператор выхода break используется для немедленного завершения оператора цикла или switch . Выполнение передается следующему после завершенного оператору.

    Оператор перехода к следующей итерации цикла continue пропускает все операторы , оставшиеся до конца тела цикла , и передает управление на модификацию параметров цикла (в случае цикла for ) и начало следующей итерации .

    Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Мы рассмотрим его вместе с функциями на следующей лекции.

    Оператор безусловного перехода goto имеет формат:

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

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

    Использование оператора безусловного перехода оправдано в двух случаях:

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

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

    Исключительную ситуацию (или просто исключение ) генерирует либо программист с помощью оператора throw , либо сама среда выполнения. Это происходит, когда во время выполнения программы возникают какие-либо ошибки, например, деление на ноль или переполнение . Механизм обработки исключений , реализованный в С++ , позволяет реагировать на подобные ошибки и таким образом избегать аварийного завершения программы.

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

  • Ссылка на основную публикацию
    Adblock
    detector