ТЕМА 2.1 СТРУКТУРА ПРОГРАММЫ И УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ

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

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

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

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

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

· Составной оператор – {...}

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

· Оператор обработки исключений

· try { <операторы> }

· catch (<объявление исключения>) { <операторы> }

· catch (<объявление исключения>) { <операторы> }

· ...

· catch (<объявление исключения>) { <операторы> }

·

· Условный оператор

· if (<выражение>) <оператор 1> [else <оператор 2>]

·

· Оператор-переключатель

· switch (<выражение>)

· { case <константное выражение 1>: <операторы 1>

· case <константное выражение 2>: <операторы 2>

· ...

· case <константное выражение N>: <операторы N>

· [default: <операторы>]

· }

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

· Оператор цикла с предусловием

· while (<выражение>) <оператор>

· Оператор цикла с постусловием

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

В языке 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.