Операторы цикла. Циклы for, while, do-while, break и continue. Оператор перехода goto и метки

Страницы работы

Фрагмент текста работы

Лекция 4

Операторы  цикла_ 1

Циклы  for_ 1

Циклы  while_ 2

Циклы  do-while_ 3

Оператор  break_ 3

Оператор  continue_ 4

Оператор  перехода  goto  и  метки_ 4

Операторы  цикла

Следующим мощным механизмом управления ходом последовательности выполнения программы является использование циклов.

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

Проверка условия может осуществляться перед выполнением (циклы for, while) или после окончания (do-while) тела цикла.

Циклы могут быть вложенными друг в друга произвольным образом.

Циклы  for

Оператор цикла for используют, как правило, в том случае, когда известен диапазон изменения переменной, например, счетчика итераций. Счётчик итераций иногда называют параметром цикла. Синтаксис цикла for имеет вид:

for ([выражение1] ; [выражение2] ; [выражение3]) оператор;

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

Ø  сначала выполняется выражение1, если оно присутствует в конструкции;

Ø  затем в начале каждой итерации вычисляется величина выражения2 (если оно присутствует) и, если полученный результат принял истинное значение, выполняется тело цикла (оператор или блок операторов). В противном случае выполнение цикла прекращается и осуществляется переход к оператору, следующему непосредственно за телом цикла. В качестве выражения2 обычно используют выражение логического типа;

Ø  после выполнения тела цикла в конце каждой итерации вычисляется выражениеЗ, если оно имеется в конструкции, и осуществляется переход к пункту вычисления величины выражения2.

Выражение1 чаще всего служит в качестве инициализации какой-нибудь переменной, выполняющей роль счетчика итераций.

Выражение2 используется как проверочное условие н на практике часто содержит выражения с операторами сравнения. По умолчанию величина выражения2 принимает истинное значение.

Выражение3 служит чаще всего для приращения значения счетчика циклов либо содержит выражение, влияющее, каким бы то ни было образом, на проверочное условие.

Все три выражения не обязательно должны присутствовать в конструкции, однако синтаксис не допускает пропуска символа точка с запятой (;). Поэтому простейший пример бесконечного цикла for (выполняется постоянно до принудительного завершения программы) выглядит следующим образом:

for ( ; ; ) cout << "Бесконечный цикл...’\n’";

Если в цикле должны синхронно изменяться несколько переменных, которые зависят от переменной цикла, вычисление их значений можно поместить в оператор for, воспользовавшись оператором "запятая".

Типичная ошибка программирования циклов for – изменение значения счетчика как в конструкции (выражениеЗ), так и в теле цикла. Это может приводить к таким негативным последствиям, как "выпадение" итераций.

Рассмотрим несколько примеров. Для начала просуммируем набор из десяти целых чисел, начиная с 10.

int S = 0 ;

for ( int i=10 ; i<20 ; i++) S += i ;

cout << "Sum = " << S ;

Как видно из примера, при инициализации был объявлен счетчик i, с начальным значением 10, увеличивающийся с каждой итерацией на единицу. Тело цикла в данном случае состоит из одного единственного оператора, добавляющего к результирующей величине S значение счетчика i в данной итерации.

Следующий фрагмент иллюстрирует применение оператора “запятая" в цикле for для решения той же задачи:

for ( int S = 0 , int i = 10 ; i<20 ; S += i , i++) ;

cout << "Sum = " << S;

Таким образом, первоначально инициализируются переменные i и S, а затем при каждой из 10-ти итерации будет вычисляться новое значение переменных S и i. После завершения цикла на экран выводится значение суммы. Пример вычисления факториала демонстрирует использование в качестве

Похожие материалы

Информация о работе