Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Оператор цикла с постусловием




Предназначен для реализации в программе варианта цикла с постусловием – вычисление тела цикла с последующей проверкой текущего значения параметра цикла на соответствие диапазону изменения.

Если условие выполняется – управление передается на повторное выполнение тела.

В противном случае (условие не выполняется) осуществляется выход из цикла.

Структура оператора

do

{

тело

цикла

}

while(усл_выр);

 

где do – ключевое слово (выполнять);

тело цикла – совокупность операторов, вычисление которых требуется повторять;

{ } – ограничители тела цикла;

while – ключевое слово (пока);

усл_выр – выражение, определяющее проверку условия повторения цикла;

() – ограничители выражения;

; – признак оператора.

Как и в операторе цикла с предусловием первая строка формирует заголовок цикла.

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

· реализуются требование входа в цикл (do);

· выполняются операторы тела цикла;

· вычисляется условное выражение (усл_выр);

· если выражение истинно (результат не равен нулю) – управление передается заголовку цикла и весь процесс повторяется при следующих значениях параметра цикла;

· если усл_выр ложно (результат равен нулю) – осуществляется нормальный выход из цикла, т.е. управление передается оператору, расположенному под строкой while (усл_выр).

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

do

{

тело

цикла

}

while(усл_выр);

ЛОЖЬ ИСТИНА

 

Стрелки определяют последовательность работы оператора в зависимости от результатов проверки условного выражения – ИСТИНА или ЛОЖЬ.

ü Внимание! Оператор do... while безусловно предписывает однократное выполнение тела цикла до проверки условного выражения (усл_выр) независимо от ее будущих результатов.

 

Так, фрагмент программы:

do /* вход в цикл */

{

yi = sin(xi); /* вычисления в */

zi = 2.* yi; /* теле цикла */

}

while(zi <= b); /* проверка условия повторения цикла */

sum = 0.;

предписывает повторение вычислений yi и zi пока zi <= b. Как только условие zi <= b перестанет выполняться, произойдет нормальный выход из цикла – управление передастся оператору sum = 0.

Правила записи и выполнения

В качестве усл_выр могут использоваться любые выражения Cи/Си++. Арифметические, например (sin(b)+0.5), (2*c–d/f), (a) или простые (составные) логические выражения, например (а!=b), (sin(x) < b), (x <= a && x >= b).

Тело цикла может оформляться одним составным или одним простым оператором. Например

 

do { yi=2. * cos(xi); printf(“ %f %f”, xi, yi); } while(yi >= b | | yi <= c);     do xi=sin(ci); while(xi<=a);

 

В теле цикла возможно использование специальных операторов break, goto, continue, обеспечивающих искусственный (принудительный) выход из цикла. Оператор break прекращает выполнение цикла и передает управление оператору, записанному непосредственно под телом цикла. Оператор goto m организует выход из цикла с передачей управления оператору, помеченному его меткой. Оператор continue прерывает выполнение тела цикла и возвращает управление элементу цикла while(усл_выр), например:

do { ... if(c < a) break; ... } while(a > b); d = 15.; do { ... if(c < a) goto k; ... } while(a > b); d = 15.; ... k: d=12.; do { ... if(c < a) continue; ... } while(a > b); d = 15.;

Первый фрагмент предписывает искусственный выход из цикла при выполнении в теле цикла условия c < a с передачей управления оператору d = 15. Второй – нарушает естественный порядок вычисления тела цикла при c < a с передачей управления оператору d=12., помеченному меткой k. Третий прерывает выполнение тела цикла по тому же условию, но управление возвращается элементу цикла while(усл_выр).

В цикле возможно использование других (вложенных) операторов цикла.

Вывод: оператор do while позволяет программировать арифметические циклы с постусловием, например, представленные схемами рис. 5.5 (блоки 5, 6, 7, 8, 9); рис. 5.7б (блоки 5, 6, 7, 8), при условии, что начальное значение параметра цикла (блок 4) задается до входа в цикл, а изменение параметра (блок 8 рис. 5.5; блок 7 рис. 5.7б) осуществляется в теле цикла.





Поделиться с друзьями:


Дата добавления: 2015-11-23; Мы поможем в написании ваших работ!; просмотров: 558 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2504 - | 2303 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.