Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


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




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

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

while(усл_выр)

{

тело

цикла

}

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

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

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

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

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

Внимание! В операторе цикла while символ окончания (;) не указывается.

Первая строка оператора называется заголовком цикла.

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

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

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

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

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

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

 
 


while(усл_выр)

ЛОЖЬ ИСТИНА

{

тело

цикла

}

 

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

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

...

while(zi <= b) /* заголовок цикла */

{

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

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

}

sum = 0.;

...

предписывает повторение вычислений yi и zi пока zi <= b.

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

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

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

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

 

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

 

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

 

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

 

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

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

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





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


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


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

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

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2280 - | 2114 -


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

Ген: 0.008 с.