Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка ПО на языке Си для микроконтроллера AT91SAM7S.pdf
Скачиваний:
120
Добавлен:
18.05.2014
Размер:
838.69 Кб
Скачать

10Циклы

Циклы – это конструкция, предназначенная для многократного выполнения

некоторого фрагмента программы. Повторно выполняемый фрагмент программы называется телом цикла. Выполнение тела цикла продолжается, пока верно условие, называемое условием продолжения (работы) цикла. При нарушении этого условия цикл завершается.

10.1Цикл с предусловием

Вцикле с предусловием (пример см. в листинге 17) сначала производится проверка условия продолжения цикла, после чего выполняется тело цикла. Если условие не выполняется, тело цикла не выполняется ни разу.

Листинг 17. Цикл с предусловием.

/* Синтаксис цикла с предусловием:

while (условие)

{

тело цикла

}

*/

int counter = 1000; while ( counter > 0)

{

// что-то делаем

--counter; // Когда-то counter станет равно 0 и цикл завершится

}

10.2Цикл с постусловием

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

Листинг 18. Цикл с постусловием.

/* Синтаксис цикла с постусловием: do

{

тело_цикла

}

32

while (условие); */

bool stop = false; do

{

//что-то делаем

//Проверяем, не пора ли остановиться stop = checkStopButtonPressed();

}

while (!stop);

10.3 Цикл со счётчиком

Цикл со счётчиком – это цикл, в котором некоторая переменная (счётчик) последовательно изменяет свои значения с некоторым шагом. Является разновидностью цикла с предусловием. Имеет блок инициализации переменной-счётчика, блок проверки условия работы цикла и блок изменения счётчика. Все три блока являются необязательными (могут быть пустыми).

На рис. 2 показан алгоритм работы цикла со счётчиком в виде блок-схемы. Блок инициализации выполняется один раз в начале выполнения цикла и служит для установки начального значения переменной-счётчика. Блок проверки условия выполняется перед каждым выполнением тела цикла. После выполнения тела цикла происходит выполнение блока изменения счётчика.

33

Рисунок 2: Алгоритм работы цикла со счётчиком

Листинг 19

/* Синтаксис цикла со счётчиком:

for (блок_инициализации; условие; блок_изменения_счётчика)

{

тело цикла

}

*/

for (int i = 0; i < 8; ++i )

{

//Провести измерение по каналу i float result = getAdcByChannel(i);

//сохранить результат измерения saveAdcResults (i, result);

}

34