Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

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

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

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

do

{

тело

цикла

}

while(усл_выр);

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

do

{

тело

цикла

}

while(усл_выр);

ЛОЖЬ ИСТИНА

 

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

ü Внимание! Оператор do... while предписывает однократное выполнение тела цикла до проверки условного выражения.

Например, фрагмент программы

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

{

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

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

}

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

sum = 0.;

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

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

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

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

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

3. В теле цикла возможно использование специальных операторов 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(усл_выр).

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

 

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

 




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


Дата добавления: 2014-01-07; Просмотров: 330; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.