Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессоры(Коротицкий Евгений Викторович) / лабы_гр3480 / Основы языка Си для микроконтроллеров AVR.doc
Скачиваний:
1508
Добавлен:
18.04.2015
Размер:
797.7 Кб
Скачать
      1. Do-while

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

Синтаксис:

do тело while (выражение).

Сначала выполняется тело цикла (которое может быть составным оператором), затем вычисляетсявыражение. Если оно истинно (значение выражения отлично от нуля), то тело цикла выполняется снова и т. д. Если выражение становится ложным (т. е. значение выражения равно нулю), то выполнение оператораdo-whileзаканчивается и выполняется следующий по порядку оператор.

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

Пример:

/* Оператор do-while */

/* В этом примере вычисляется факториал числа 5 */

void main(void) {

int x=l; // Объявляем и инициализируем целую переменную х

int у=1; // Объявляем и инициализируем целую переменную у

int z=5; // Объявляем и инициализируем целую переменную z

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

/* Тело цикла do*/

у=у*х; // вычисляем значение у

х=++х; // инкрементируем (увеличиваем на 1) значение х

/*while */

} while (x<=z); // проверка условия

/* Тело цикла (у=у*х, х=++х) будет выполняться, начиная со значения х=1. После каждого выполнения цикла х будет увеличиваться на 1, затем будет проверяться условие (x<=z), и, если оно истинно, тело цикла будет повторяться с новым значением х. Цикл будет выполняться до тех пор, пока х не превысит значение z, т. е. 5. Обратите внимание, что после выполнения цикла do-while значение х будет равно 6. Значение у будет равно 120 */

      1. Break

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

Пример:

/* Оператор break */

/* Поиск в заданном массиве элемента, равного 0 */

/* Подключим заголовочный файл со стандартными функциями ввода/вывода */

#include <stdio.h> // подключаем заголовочный файл со стандартными функциями ввода/вывода

int array[7]={-3,-2,-1,0,1,2,3}; // Объявляем и инициализируем целочисленный массив array

int n=7; // Объявляем и инициализируем целую переменную п - количество элементов массива

void main(void){ // Основная функция программы

int i; // Объявляем целую переменную i, которая будет задавать индекс элемента массива array

for(i=0;i<n;i++) // Цикл for

/* Тело цикла for */

if(array[i]==0) break; // Если i-й элемент массива равен 0, то выход из цикла forпоbreak

/* Оператор if-else */

if(i==n) // Если i=n,

printf("%d not found \n",0); // то выводим строку: "0 not found "

else // Если i не равен n,

printf("%don%dplace\n",0,i); // то выводим строку: "0oniplace", где i — номер места

/* Тело цикла (if(array[i]=0) break) будет выполняться, начиная со значения i=0. После каждого выполнения цикла i будет увеличиваться на 1, затем будет проверяться условие (i<n), и, если оно истинно, тело цикла будет повторяться с новым значением i. Цикл будет выполняться до тех пор, пока i не станет равно п или выражение в теле цикла for не станет истиной, и будет осуществлён выход из цикла по оператору break. В обоих случаях будет осуществлён переход на оператор if-else. */