...

switch (a)

  {case 1: b=c; break;

   case 2:

   switch (d)

     {case 0: f=s;  break;

      case 1: f=9;  break;

      case 2: f-=9; break;

    }

  case 3: b-=c; break;

     ...

  }

Оператор break

Оператор break обеспечивает прекращение выполнения самого внутреннего из объемлющих его операторов: switch, do, for или while. После выполнения оператора break управление передается оператору, следующему за прерванным оператором.

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

Оператор for — это наиболее общий способ организации цикла. Он имеет следующий формат:

"for (" Выражение1';' Выражение2';' Выражение3 ')' Тело цикла';'

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

Последовательность выполнения оператора цикла for:

1) Вычисялется Выражение 1;

2) Вычисялется Выражение2;

3) если значение Выражение2 отлично от нуля, то выполняется тело цикла, вычисляется Выражение3 и осуществляется переход к пункту 2, если Выражение2 равно нулю, то управление передается на оператор, следующий за оператором for.

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

Пример использования оператора цикла for:

int main ()

{int i,b;

 for (i=1; i<10; i++)

   b=i*i;

  return 0;

}

В этом примере вычисляются квадраты чисел от 1 до 9.

Некоторые варианты применения оператора for повышают его возможности за счет использования сразу нескольких переменных, управляющих циклом.

Пример использования нескольких переменных в операторе цикла for:

int main()

{int top,bot;

 char string (100), temp;

 for(top=0, bot=100; top

    {temp=string[top];

     string[bot]=temp;

    }

В этом примере, реализующем запись строки символов в обратном порядке, для управления циклом используются две переменные top и bot.

Отметим, что на месте Выражения1 и Выражения3 здесь используются несколько выражений, записанных через запятую и выполняемых последовательно.

В этом же примере можно наглядно проследить за тем, как влияет выбор типа переменных на размер загрузочного файла. В приведенном примере для организации цикла использованы переменные типа int. В результате получился машинный код размером 59 байт. При замене типа этих же переменных на unsigned char размер кода сокращается до 41 байта. Эти же действия увеличивают быстродействие программы в полтора раза!

В микроконтроллерах оператор цикла for используется^для реализации бесконечного цикла, который необходим для непрерывной работы устройства. Организация такого цикла возможна при использовании пустого Выражения2. Иногда для реализации алгоритма работы устройства требуется при выполнении какого-либо условия выйти из бесконечного цикла. Для этого можно воспользоваться оператором break.

Пример реализации бесконечного цикла с возможностью выхода из него при помощи оператора for:

for (;;)

{ ...

  ...  break;

  ...

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

Пример использования пустого оператора для поиска:

for(i=0;t[i]<10;i++);

В данном примере при завершении цикла переменная цикла i принимает значение номера первого элемента массива t, значение которого больше 10.

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

Оператор while называется циклом с предусловием и имеет следующий формат:

"while ("Выражение')' Тело ';'

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

В качестве выражения допускается использовать любое выражение языка С-51, а в качестве тела — любой оператор, в том числе пустой или составной операторы. Последовательность выполнения оператора while:

1) вычисляется Выражение;

2) если Выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while;

3) переход к пункту 1.

Оператор цикла вида

"for ("Выражение 1';' Выражение2';' Выражение3')' Тело ';'

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

Поиск

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