Формат и вложенность

Формат. Один оператор может занимать одну или более строк. Два или большее количество операторов могут быть расположены на одной строке.

Вложенность. Операторы, управляющие порядком выполнения (if, if-else, switch, while, do-while и for), могут быть вложены друг в друга.

Метка оператора

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

Пример

АВС2: х=3;

Составной оператор

Составной оператор (блок) состоит из одного или большего числа операторов любого типа, заключенных в фигурные скобки ( { } ).   После закрывающейся фигурной скобки не должно быть точки с запятой (;).

Пример

{х=1; у=2; z=3;}

Оператор-выражение

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

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

Идентификатор = выражение;

Пример

х=3;

Оператор вызова функции

Имя_функции (аргумент!,..., аргумент^);

Пример

fclose (file);

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

Состоит только из точки с запятой (;). Используется для обозначения пустого тела управляющего оператора.

Оператор завершения break

break;

Прекращает выполнение ближайшего вложенного внешнего оператора switch, while, do или for. Управление передается оператору, следующему за заканчиваемым. Одно из назначений этого оператора -закончить выполнение цикла при присваивании некоторой переменной определенного значения.

Пример

for (i = 0, i < n; i++) if((a[i] =b[i])==0) break,

Оператор продолжения continue

continue

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

Этот оператор по действию противоположен оператору break.

Пример:

for (i=0, К n, i++)

      { if(a[i] '=0) continue, a[i]=b[i]. k++;}

Оператор возврата return

return

Прекращает выполнение текущей функции и возвращает управление вызвавшей программе. return выражение;

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

Пример

return x+y;

Оператор перехода goto

goto метка;

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

Пример

goto ABC,

Условный оператор if-else

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

Если выражение истинно, то выполняется оператор. Если выражение ложно, то ничего не делается.

Пример

if (а == х) temp = 3;

temp = 5,

if (выражение)

оператор} else

оператор2

Если выражение истинно, то выполняется оператор и управление передается на оператор, следующий за оператором (т. е. оператор2 не выполняется). Если выражение ложно, то выполняется оператор2.

Часть else оператора может опускаться. Поэтому во вложенных операторах if с пропущенной частью else может возникнуть неоднозначность. В этом случае else связывается с ближайшим предыдущим оператором if в том же блоке, не имеющим части else

Примеры

Часть else относится ко второму оператору if:

if (х > 1) if (у==2)

z= 5; else z=6,

Часть else относится к первому оператору if if(x>l){ if (У==2)

z= 5;  else z= б,

Вложенные операторы

if (х == 'а') У=1,

else if (x=='b'){

У=2; z=3; у else if (x == 'c')

У =4; else

printf("ERROR"),

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

switch (выражение) {

case константа: операторы case константа: операторы

default: операторы

}

Сравнивает значение выражения с константами во всех вариантах case и передает управление оператору, который соответствует значению выражения.Каждый вариант case может быть помечен целой или символьной константой, или константным выражением. Константное выражение не может включать переменные или вызовы функций'.

Примеры

Правильно: case 3+4:

Неправильно: case X+Y:

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

Пример

switch (x) { case 'A':

printf("CASE A\n");

break, case 'В':

case 'С':

printf("CASE В or C\n"), break;

default:

printf("NOT А, В or C\n");

break;

} Наиболее общая синтаксическая форма оператора switch:

switch (выражение) оператор Пр имер

switch (x) case 2:

case 4:

у=3;

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

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

Если выражение истинно, то оператор выполняется до тех пор, пока выражение не станет ложным. Если выражение ложно, то управление передается следующему оператору.

3амечание. Значение выражения определяется до выполнения оператора. Следовательно, если выражение ложно с самого начала, то оператор вообще не выполняется.

Пример

while (k < n) { У=У*х, k++;

Оператор цикла do-while

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

Оператор выполняется. Если выражение истинно, то оператор выполняется и вычисляется значение выражения; это повторяется до тех пор, пока выражение не станет ложным. Если выражение ложно, то управление передается следующему оператору.

Замечание. Значение выражения определяется после выполнения оператора. Поэтому оператор выполняется хотя бы один раз. Оператор do-while проверяет условие в конце цикла. Оператор while проверяет условие в начале цикла.

Пример

х= 1:

do

printf("%d\n", power(x, 2));

whue (-н-х <= 7),

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

for (выражение1;выражение2; выражение3); {}

выражение1-2 описывает инициализацию цикла.

ВыражениеЗ — проверка условия завершения цикла. Если оно истинно, то выполняется оператор тела цикла for, выполняется выражениеЗ. Все повторяется, пока выражение2 не станет ложным. Если оно ложно, цикл заканчивается и управление передается следующему оператору. ВыражениеЗ вычисляется после каждой итерации. Оператор for эквивалентен следующей последовательности операторов:

выражение1;

while (выражение2) { оператор выражениеЗ};

Пример

for (х= 1, х<= 7, х++)

printf("%d\n", power(x, 2));

Любое из трех или все три выражения в операторе for могут отсутствовать, однако разделяющие их точки с запятыми (;) опускать нельзя. Если опущено выражение2, то считается, что оно постоянно истинно. Оператор for (;;) представляет собой бесконечный цикл, эквивалентный оператору while(l). Каждое из выражений 1-3 может состоять из нескольких выражений, объединенных оператором запятая (,).

Пример

for (i=0, j=n-l; i< n, i++, J--) a[i]=a[J];