Операторы

Все операторы языка С-51 могут быть условно разделены на следующие категории:

— условные операторы, к которым относятся оператор условия if и оператор выбора switch;

— операторы цикла (for, while, do-while);

— операторы Перехода (break, continue, return, goto);

— другие операторы (оператор «выражение», пустой оператор).

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

Все операторы языка С-51, кроме составных, заканчиваются точкой с запятой (;).

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

Любое выражение, которое заканчивается точкой с запятой, является оператором.

Выполнение оператора-выражения заключается в вычислении выражения. Полученное значение никак не используется, поэтому, как правило, такие выражения вызывают побочные эффекты. Заметим, что вызвать функцию, не возвращающую значение, можно только при помощи оператора-выражения. Правила вычисления выражений были сформулированы выше.

Примеры:

++ i;

Этот оператор представляет выражение, которое увеличивает значение переменной i на единицу.

a=cos(b*5);

Этот оператор представляет выражение, включающее в себя операции присваивания и вызова функции.

а(х, у);

Этот оператор представляет выражение, состоящее из вызова функции.

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

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

— в операторах do, for, while, if в строках, когда не требуется выполнение каких-либо действий, но по синтаксису требуется хотя бы один оператор;

— при необходимости пометить фигурную скобку. Синтаксис языка программирования С-51 требует, чтобы после метки обязательно следовал оператор. Фигурная же скобка оператором не является. Поэтому, если надо передать управление на фигурную скобку, необходимо использовать пустой оператор.

Пример:

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

Составной оператор, часто называемый блоком, представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:

'{'    [Список объявлений)

      [Список операторов)

 '}' 

Заметим, что в конце составного оператора точка с запятой не ставится.

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

Пример:

Переменные е, g, f, q будут уничтожены после выполнения составного оператора. Отметим, что переменная q является локальной в составном операторе, т. е. она никоим образом не связана с переменной q объявленной в начале функции main с типом int.

Оператор if

Формат оператора:

"if (" Выражение')' Оператор 1';' ["else" Оператор2';']

Выполнение оператора if начинается с вычисления выражения.

Далее выполнение происходит по следующей схеме:

1) если Выражение истинно (т. е. отлично от 0), то выполняется Оператор1;

2) если Выражение ложно (т. е. равно 0), то выполняется Оператор2;

3) если Выражение ложно и отсутствует Оператор2, то выполняется следующий за if оператор.

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

Пример:

if (i < j)

   i++;

  else

{j=i-3;

 i++;

Этот пример иллюстрирует также и тот факт, что на месте Оператора1, так же как и на месте Оператора2, могут находиться сложные конструкции.

Допускается использование вложенных операторов 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);

  } 

В результате выполнения этой программы переменная r станет равной 2. Если же в программе опустить фигурные скобки, стоящие после оператора if, то программа будет иметь следующий вид:

int main( )

  {int t=2, b=7, r=3;

    if(a>b)

      if (b

          t=b;

       else

        r=t ;

   return (0);

 } 

В этом случае r получит значение, равное 3, т. к. ключевое слово else относится ко второму оператору if, который не выполняется, поскольку не выполняется условие, проверяемое в первом операторе if.

Следующий фрагмент иллюстрирует вложенные операторы if:

Перейти на страницу:

Поиск

Похожие книги