Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Оператор цикла с постусловием
Предназначен для реализации в программе варианта цикла с постусловием – вычисление тела цикла с последующей проверкой текущего значения параметра цикла на соответствие диапазону изменения. Если условие выполняется – управление передается на повторное выполнение тела. В противном случае (условие не выполняется) осуществляется выход из цикла. Структура оператора 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. Правила записи и выполнения 1. В качестве усл_выр могут использоваться любые выражения Cи/Си++. Арифметические, например (sin(b)+0.5), (2*c–d/f), (a) или простые (составные) логические выражения, например (а!=b), (sin( x ) < b), ( x <= a && x >= b ). 2. Тело цикла может оформляться одним составным или одним простым оператором. Например
3. В теле цикла возможно использование специальных операторов break, goto, continue, обеспечивающих искусственный (принудительный) выход из цикла. Оператор break прекращает выполнение цикла и передает управление оператору, записанному непосредственно под телом цикла. Оператор goto m организует выход из цикла с передачей управления оператору, помеченному его меткой. Оператор continue прерывает выполнение тела цикла и возвращает управление элементу цикла while(усл_выр), например:
Первый фрагмент предписывает искусственный выход из цикла при выполнении в теле цикла условия 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б) осуществляется в теле цикла.
Дата добавления: 2015-07-26; просмотров: 255; Нарушение авторских прав Мы поможем в написании ваших работ! |