Понятие оператора
Операторы языка Си управляют процессом
выполнения программы.
Пустой оператор - это оператор, состоящий
только из точки с запятой. Он может появиться в любом месте программы, где по
правилам синтаксиса требуется оператор. Выполнение пустого оператора не меняет
состояния программы.
Составной оператор Действие составного
оператора заключается в последовательном выполнении содержащихся в нем
операторов, за исключением тех случаев, когда какой-либо оператор явно передает
управление в другое место программы.
В начале составного оператора могут
содержаться объявления. Они служат для определения переменных, локальных для
данного блока, либо для распространения на данный блок области действия
глобальных объектов.
Типично использование составного оператора в
качестве тела другого оператора, например оператора 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 заканчивает выполнение
функции, в которой он содержится, и возвращает управление в вызывающую функцию.
Управление передается в точку вызывающей функции, непосредственно следующую за
оператором вызова.
|