Понятие оператора
Операторы языка Си управляют процессом выполнения программы.
Пустой оператор - это оператор, состоящий только из точки с запятой. Он
может появиться в любом месте программы, где по правилам синтаксиса требуется
оператор. Выполнение пустого оператора не меняет состояния программы.
Составной оператор Действие составного оператора заключается в
последовательном выполнении содержащихся в нем операторов, за исключением тех
случаев, когда какой-либо оператор явно передает управление в другое место
программы.
В начале составного оператора могут содержаться объявления.
Они служат для определения переменных, локальных для данного блока, либо для
распространения на данный блок области действия глобальных объектов.
Типично использование составного оператора в качестве тела
другого оператора, например оператора if.
Оператор-выражение
Значение содержащегося в нем выражения никак не
используется. Кроме того, он может быть записан лишь там, где по синтаксису
допустим оператор.
Условный оператор if
Формат оператора:
if (выражение) оператор1; [else оператор2;]
Выполнение оператора if начинается с вычисления выражения.
Далее выполнение осуществляется по следующей схеме:
- если выражение истинно (т.е. отлично от 0), то выполняется
оператор1.
- если выражение ложно (т.е. равно 0),то выполняется
оператор2.
- если выражение ложно и отсутствует оператор2, то
выполняется следующий за if оператор.
Допускается использование вложенных операторов if.
Оператор пошагового цикла for
Оператор for - это наиболее общий способ организации цикла.
Он имеет следующий формат:
for ( выражение 1 ; выражение 2 ; выражение 3 ) тело;
Выражение 1 обычно используется для установления начального
значения переменных, управляющих циклом. Выражение 2 - это выражение,
определяющее условие, при котором тело цикла будет выполняться. Выражение 3
определяет изменение переменных, управляющих циклом после каждого выполнения
тела цикла.
Схема выполнения оператора for:
1. Вычисляется выражение 1.
2. Вычисляется выражение 2.
3. Если значения выражения 2 отлично от нуля (истина),
выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к
пункту 2, если выражение 2 равно нулю (ложь), то управление передается на
оператор, следующий за оператором for.
Другим вариантом использования оператора for является
бесконечный цикл. Для организации такого цикла можно использовать пустое
условное выражение, а для выхода из цикла обычно используют дополнительное
условие и оператор break.
Оператор цикла с предусловием while
Оператор цикла while называется циклом с предусловием и
имеет следующий формат:
while (выражение) тело;
Схема выполнения оператора while следующая:
1. Вычисляется выражение.
2. Если выражение ложно, то выполнение оператора while
заканчивается и выполняется следующий по порядку оператор. Если выражение
истинно, то выполняется тело оператора while.
3. Процесс повторяется с пункта 1.
Оператор цикла с постусловием do while
Оператор цикла do while называется оператором цикла с
постусловием и используется в тех случаях, когда необходимо выполнить тело
цикла хотя бы один раз. Формат оператора имеет следующий вид:
do тело while (выражение);
Схема выполнения оператора do while :
1. Выполняется тело цикла (которое может быть составным
оператором).
2. Вычисляется выражение.
3. Если выражение ложно, то выполнение оператора do while
заканчивается и выполняется следующий по порядку оператор. Если выражение
истинно, то выполнение оператора продолжается с пункта 1.
Оператор продолжения continue передает управление на следующую
итерацию в операторах цикла do, for, while. Он может появиться только в теле
этих операторов. Остающиеся в теле цикла операторы при этом не выполняются.
Оператор-переключатель switch
Синтаксис:
switch(<выражение>)
{
[<объявление>]
[case <константное-выражение>:] [<оператор>]
[case <константное-выражение>:] [<оператор>]
[default:] [<оператор>]
}
Оператор-переключатель switch предназначен для выбора одного
из нескольких альтернативных путей выполнения программы. Выполнение
оператора-переключателя начинается с вычисления значения выражения переключения
(выражения, следующего за ключевым словом switch в круглых скобках). После
этого управление передается одному из <операторов> тела переключателя.
Оператор, следующий за ключевым словом default, выполняется, если ни одна из
констант варианта не равна значению выражения переключения. Если же слово default
опущено, то ни один оператор в теле переключателя не выполняется, и управление
передается на оператор, следующий за переключателем в программе.
Оператор разрыва break прерывает выполнение операторов do,
for, while или switch. Он может содержаться только в теле этих операторов.
Управление передается оператору программы, следующему за прерванным.
Оператор перехода goto
Оператор перехода goto передает управление непосредственно
на <оператор>, помеченный <меткой>. Метка представляет собой
обычный идентификатор. Область действия метки ограничивается функцией, в
которой она определена; из этого следует, во-первых, что каждая метка должна
быть отлична от других меток в той же самой функции; во-вторых, что нельзя
передать управление по оператору goto в другую функцию.
Помеченный оператор выполняется сразу после выполнения
оператора goto. Нельзя с помощью оператора goto передать управление на
конструкции case и default в теле переключателя.
Оператор возврата return заканчивает выполнение функции, в
которой он содержится, и возвращает управление в вызывающую функцию. Управление
передается в точку вызывающей функции, непосредственно следующую за оператором
вызова.
|