Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Оператор цикла с предусловием
Предназначен для программирования варианта цикла с предусловием – проверки текущего значения параметра цикла на соответствие диапазону изменения с реализацией тела цикла, если условие выполняется, и выходу из цикла при его невыполнении. Структура оператора: while( усл_выр ) { тело цикла } где while – ключевое слово (пока); усл_выр – выражение, определяющее проверку условия повторения цикла; ( ) – ограничители выражения; тело цикла – совокупность повторно вычисляемых операторов; { } – ограничители тела цикла. ü Внимание! В операторе цикла while символ окончания ( ; ) не указывается. Первая строка оператора называется заголовком цикла. Оператор выполняется следующим образом: · вычисляется условное выражение (усл_выр); · если выражение истинно (результат не равен нулю) – выполняется тело цикла и управление передается в заголовок для очередной проверки усл_выр; · если усл_выр ложно (результат равен нулю) – тело цикла не выполняется и управление передается оператору, записанному под ним. Выход из оператора цикла по результатам проверки условного выражения называется естественным (нормальным) выходом. Схема выполнения оператора while( усл_выр ) ЛОЖЬ ИСТИНА { тело цикла }
Стрелки определяют последовательность работы оператора в зависимости от результатов проверки условного выражения – ИСТИНА или ЛОЖЬ. Например, фрагмент программы . . . while( zi <= b ) /* заголовок цикла */ { yi = sin( xi ); /* вычисления в */ zi = 2.* yi; /* теле цикла */ } 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. Тело цикла может оформляться одним составным или одним простым оператором, например:
3. В теле цикла возможно использование специальных операторов break, goto, continue, обеспечивающих искусственный (принудительный) выход из цикла. Оператор break прекращает выполнение цикла и передает управление оператору, записанному непосредственно под телом цикла. Оператор goto m организует выход из цикла с передачей управления оператору, помеченному его меткой. Оператор continue прерывает выполнение тела цикла и возвращает управление заголовку цикла, например:
Первый фрагмент предписывает искусственный выход из цикла при выполнении в теле цикла условия c < a с передачей управления оператору d = 15. Второй – нарушает естественный порядок вычисления тела цикла при c < a с передачей управления оператору d=12., помеченному меткой k. Третий прерывает выполнение тела цикла по тому же условию, но управление возвращается заголовку цикла. 4. В теле цикла возможно использование других (вложенных) операторов цикла. Вывод: оператор while позволяет программировать арифметические циклы с предусловием, например, представленные схемами рис. 5.4 (блоки 5, 6, 7, 8, 9); рис. 5.7а (блоки 5, 6, 7, 8), при условии, что начальное значение параметра цикла (блок 4) задается до входа в цикл, а изменение параметра (блок 8) осуществляется в теле цикла.
Дата добавления: 2015-07-26; просмотров: 208; Нарушение авторских прав Мы поможем в написании ваших работ! |