Читаем Занимательно о микроконтроллерах полностью

может быть заменен оператором while следующим образом:

Выражение1;

"whilе ("Выражение2')'

'{'    Тело

Выражение3;

'}'  

Так же, как и при выполнении оператора цикла for, в операторе while вначале происходит проверка Выражения2. Поэтому оператор while удобно использовать в ситуациях, когда тело не всегда нужно выполнять.

Внутри операторов for и while можно использовать локальные переменные, которые должны быть объявлены с определением соответствующих типов.

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

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

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

Схема выполнения оператора do-whiie:

1) выполняется тело цикла (которое может быть составным оператором);

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

3) если Выражение ложно, то выполнение оператора do-whiie заканчивается и выполняется следующий по порядку оператор. Если Выражение истинно, то выполняется переход к пункту 1.

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

Операторы while и do-while могут быть вложенными.

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

int i,j,k;

...

i=0; j=0; k=0;

do {i++;

      j--;

      while(a[k]

}while(i<30&&j<-30); 

Следует отметить, что приведенный пример использования оператора do-whiie не является образцом для подражания, т. к. использование операции && заставляет компилятор создавать достаточно сложную программу выполнения логического выражения. Использование для той же цели оператора break приводит к более длинному исходному тексту программы. При этом код программы получается более коротким и быстродействующим, т. к. в этом случае один оператор языка программирования С соответствует одной машинной команде микроконтроллера:

char i=0, j=0, k=0;

...

do{i++; j--;

     while(a[k]

     if(j>=-30)break;

}while(i<30); 

Оператор continue

Оператор continue используется только внутри операторов цикла, но в отличие от break, осуществляется не выход из цикла, а переход к следующему циклу. Формат записи оператора continue:

"continue;"

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

int main()

{int a,b;

 for (a=1,b=0; a<100; b+=a,a++)

   {if (b%2) continue;

    ... /* обработка четных сумм */

   }

 return 0;

Когда сумма чисел от 1 до а становится нечетной, оператор continue передает управление на очередную итерацию цикла for, не выполняя операторы обработки четных сумм.

Оператор continue, как и оператор break, прерывает самый внутренний из объемлющих его циклов.

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

Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом данной функции. Формат оператора возврата из функции:

"return" [Выражение]';'

Значение выражения, если оно задано, возвращается в вызывающую функцию в качестве значения вызванной функции. Если выражение опущено, то возвращаемое значение не определено. Это используется в функция типа void. Выражение может быть заключено в круглые скобки, хотя их наличие не обязательно.

Если в какой-либо функции отсутствует оператор return, то передача управления в точку вызова происходит после выполнения последнего оператора вызываемой функции. При этом возвращаемое значение не определено. Если функция не должна возвращать значения (подпрограмма-процедура), то ее нужно объявлять с типом void.

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

Пример использования оператора return для возвращения результата работы функции суммирования двух переменных:

int sum (int a, int b)

{return (a+b);}

Функция sum объявлена с двумя формальными параметрами, а и b, int-типа и возвращает значение такого же типа, о чем говорит описатель, стоящий перед именем функции. Возвращаемое оператором return значение равно сумме фактических параметров.

Пример использования оператора return для выхода из подпрограммы-процедуры:

В этом примере оператор return используется для выхода из функции в случае выполнения одного из проверяемых условий.

Оператор безусловного перехода goto
Перейти на страницу:

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

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки