Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Встроенные системы на МК ATmega16.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
7.82 Mб
Скачать

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

Оператор for - это наиболее общий способ организации цикла. В этом операторе используется переменная цикла или счетчик числа повторений.

Оператор имеет следующий формат:

for ( выражение 1 ; выражение 2 ; выражение 3 )

{

Тело цикла

}

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

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

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

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

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

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

Пример: Вычисление квадратов чисел от 1 до 9. Результаты помещаются в массив.

unsigned char i, b; //Объявление переменных

unsigned char mass_result [9] ; //Объявление массива результата

unsigned char main ( )

{

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

{

mass_result [ i - 1 ] = i * i ; // Тело цикла.

}

}

Переменные цикла принимают значения от 1 до 9 с шагом равным 1.

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

  1. присвоение i =1;

проверка: так как 1 < 10, то выполняется п.3;

  1. выполняется тело цикла: элементу массива с индексом равным нулю

(т. к. i – 1 = 1-1=0 ) присваивается результат умножения i * i т.е. 1*1 = 1;

3. переменной i присваивается значение 2, так как i + + ;

переход к пункту 2. , т.е проверка: 2 < 10. Снова выполняется тело цикла: элементу массива с индексом равным единице (т. к. i – 1 = 2 – 1 = 1 ) присваивается результат умножения i * i т.е. 2 * 2 = 4. Снова выполняется п.4. Теперь переменной i присваивается значение 3, так как i + + и так далее.

Пример соответствует алгоритму.

Оператор while

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

while (выражение)

{

тело цикла;

}

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

1. Вычисляется выражение в скобках.

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

Пример: Вычисление квадратов чисел от 1 до 9. Результаты помещаются в массив.

unsigned char i = 1, b; //Объявление переменных и присвоение i = 1.

unsigned char mass_result [9] ; //Объявление массива результата

unsigned char main ( )

{

while ( i < 10 )

{

mass_result [ i - 1 ] = i * i ; // В теле цикла два оператора

i + + ; // Увеличение на единицу переменной i

}

}

Для непрерывно выполняющегося цикла ( бесконечного цикла) можно использовать оператор

while ( 1 )

{