Все операторы языка С-51 могут быть условно разделены на следующие категории:
— условные операторы, к которым относятся оператор условия if и оператор выбора switch;
— операторы цикла (for, while, do-while);
— операторы Перехода (break, continue, return, goto);
— другие операторы (оператор «выражение», пустой оператор).
Операторы в программе можно объединять в составные операторы с помощью фигурных скобок. Любой оператор в программе может быть помечен меткой, состоящей из имени и следующего за ним двоеточия.
Все операторы языка С-51, кроме составных, заканчиваются точкой с запятой (;).
Оператор-выражение
Любое выражение, которое заканчивается точкой с запятой, является оператором.
Выполнение оператора-выражения заключается в вычислении выражения. Полученное значение никак не используется, поэтому, как правило, такие выражения вызывают побочные эффекты. Заметим, что вызвать функцию, не возвращающую значение, можно только при помощи оператора-выражения. Правила вычисления выражений были сформулированы выше.
Примеры:
++ i;
Этот оператор представляет выражение, которое увеличивает значение переменной
a=cos(b*5);
Этот оператор представляет выражение, включающее в себя операции присваивания и вызова функции.
а(х, у);
Этот оператор представляет выражение, состоящее из вызова функции.
Пустой оператор
Пустой оператор состоит только из точки с запятой. При выполнении этого оператора ничего не происходит. Он обычно используется в следующих случаях:
— в операторах do, for, while, if в строках, когда не требуется выполнение каких-либо действий, но по синтаксису требуется хотя бы один оператор;
— при необходимости пометить фигурную скобку. Синтаксис языка программирования С-51 требует, чтобы после метки обязательно следовал оператор. Фигурная же скобка оператором не является. Поэтому, если надо передать управление на фигурную скобку, необходимо использовать пустой оператор.
Пример:
Составной оператор
Составной оператор, часто называемый блоком, представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:
'{' [Список объявлений)
[Список операторов)
'}'
Заметим, что в конце составного оператора точка с запятой не ставится.
Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов. Он используется в условных операторах и операторах цикла для того, чтобы выполнить несколько операторов.
Пример:
Переменные
Формат оператора:
"if (" Выражение')' Оператор 1';' ["else" Оператор2';']
Выполнение оператора if начинается с вычисления выражения.
Далее выполнение происходит по следующей схеме:
1) если
2) если
3) если
После выполнения оператора if значение передается на следующий оператор программы, если последовательность выполнения операторов программы не будет принудительно нарушена использованием операторов перехода.
Пример:
if (i < j)
i++;
else
{j=i-3;
i++;
}
Этот пример иллюстрирует также и тот факт, что на месте
Допускается использование вложенных операторов if. Оператор if может быть включен в конструкцию if или в конструкцию else другого оператора if. Чтобы сделать программу более читабельной, рекомендуется группировать операторы и конструкции во вложенных операторах if, используя фигурные скобки (образуя составной оператор). Если же фигурные скобки опущены, то компилятор связывает каждое ключевое слово else с наиболее близким ключевым словом if, для которого нет else.
Примеры:
int main ( )
{int t=2, b=7, r=3;
if(t>b)
{if(b } else r=t; return (0); }
В результате выполнения этой программы переменная
int main( )
{int t=2, b=7, r=3;
if(a>b)
if (b t=b; else r=t ; return (0); }
В этом случае
Следующий фрагмент иллюстрирует вложенные операторы if: