Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операторы языка C++_new — копия.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
107.2 Кб
Скачать

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

Циклы реализуют алгоритмическую схему повторения обработки данных.

В С++ определены три разных цикла:

  • цикл с предусловием:

while (выражение-условие)

тело_цикла;

  • цикл с постусловием:

do тело_цикла

while (выражение-условие);

  • цикл с параметром:

for (инициализация_цикла; выражение-условие; выражения коррекции)

тело_ цикла

Тело_цикла - это отдельный оператор, который всегда завершается точкой с запятой, либо составной оператор, либо блок.

Только описание или определение не может быть телом цикла. Операторы цикла задают многократное выполнение операторов тела цикла.

Выражение-условие во всех операторах скалярное (чаще всего логическое или арифметическое) определяет условие продолжение повторения обработки, если оно истинно (отлично от нуля).

Прекращение выполнения цикла происходит в случаях:

  • ложное (нулевое) значение выражения-условия;

  • выполнение в теле цикла оператора передачи управления за пределы тела цикла.

Последнюю возможность рассмотрим позже.

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

При входе в цикл вычисляется условие, если оно отлично от нуля, выполняется тело_цикла.

Затем вычисление выражения-условия и выполнение тела_цикла повторяются, пока условие не станет ложным.

Следующая функция подсчитывает длины строки, заданной с помощью адресующего ее указателя – параметра функции:

int lt (char*stroka)

{int ln = 0;

while (*stroka++) ln++;

return ln;}

Ниже приведены некоторые выражения условия:

while (a<b), while (point! = nullptr ) // (point-указатель),

while(point), while (point! = 0).

Если в теле цикла не изменяется выражение-условие, могут возникнуть бесконечные циклы или ''зацикливание''.

Пример бесконечного цикла, с пустым оператором в теле:

while (1);

Такой цикл может быть закончен за счет событий, явно непредусмотренных в программе. Например, событие – указание операционной системе ''снять задачу''.

Оператор do while является оператором цикла с постусловием.

При входе в цикл выполняется тело_цикла.

Затем проверяется выражение-условие и, если его значение истинно, вновь выполняется тело цикла и так далее.

К выражению-условию требования те же: оно должно изменяться при итерациях за счет операторов тела циклов.

do ; while (1); //бесконечный цикл

Примеры:

1)… char letter;

cout <<”Вы желаете продолжить? ( Y/N ) “;

letter = getch(); // чтение буквы с клавиатуры

letter = toupper(letter); // преобразование в прописную

while ((letter != 'Y') && ( letter != 'N'))

{ putch(7); //звуковой сигнал для неверного символа

letter = getch() ;

letter = toupper(letter);

}

2) … cout <<”Вы желаете продолжить? ( Y/N ) “

do {

letter = getch(); // чтение буквы с клавиатуры

letter = toupper(letter); // преобразование в прописную

if ( ( letter != 'Y' ) && (letter != 'N') )

putch(7) //звуковой сигнал для неверного символа

}

while ((letter != 'Y') && ( letter != 'N'));

Цикл forцикл с параметром.

Заголовок цикла после зарезервированного слова for в круглых скобках включает три части: инициализация_цикла, выражение-условие и список выражений для коррекции, которые разделяются двумя знаками ';'.

Каждая из этих частей может отсутствовать, но даже если все они отсутствуют, два разделителя - ';' должны присутствовать в заголовке.

Инициализация_цикла – это выражение, или определения объектов одного типа.

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

Заканчивается точкой с запятой.

Как правило, определяются и инициализируются параметры цикла.

Выражение-условие - логическое выражение, проверяется на каждой итерации цикла.

Если его нет, полагают, что оно истинно.

В этом случае сохраняется следующая за условием точка с запятой.

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

Тело_цикла – может быть отдельным простым оператором, составным оператором или блоком.

При входе в цикл один раз вычисляются выражения из секции инициализация_цикла.

Вычисляется значение выражения-условия, если оно истинно, выполняются операторы тела_цикла и вычисляются выражения коррекции.

Далее цепочка повторяется, пока выражение-условие не станет ложным.

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

Примеры показывают, что управляющая переменная может изменяться на любую требуемую величину:

for(c =0 ; c<=100 ; c +=10)

;

for(b =100; b >= -100; b -= 25)

;

for(let =’A ; let <= ‘Z’; let ++)

;

for(pr =0.0 ; pr<= 100.0 ; pr +=0.5)

;

Область действия имени объекта, объявленного в заголовке цикла, определяется от точки объявления объекта до конца блока, в котором цикл присутствует.

Пример:

for ( int i = 0 ; i< 3 ; i++) cout << i<<” “ ;

for ( ; i > 0 ; i -- ) cout << i<<” “ ;

0 1 2 3 2 1