Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР7-С++-05 апреля-2012.doc
Скачиваний:
19
Добавлен:
15.09.2019
Размер:
2.45 Mб
Скачать

1. Оператор while:

while (Условие)

{ //Количество повторений любое.

Тело цикла

}

2. Оператор do…while:

do

{ //Количество повторений любое.

Тело цикла

}

while (Условие)

3. Оператор for:

for (объявление параметра цикла)

{ //Количество повторений фиксировано.

Тело цикла

}

Для принудительного завершение текущей итерации и цикла в целом. служат операторы break, continue, return, goto. Передавать управление извне внутрь цикла не рекомендуется. Использование оператора goto приводит к созданию запутанного, трудно читаемого кода, прозванного программистами "спагетти". Использование оператора goto среди программистов считается верхом неприличия. Чтобы избежать оператора goto, используют сложные условия повторения цикла.

1.5. Оператор цикла типа "прогрессия" for

Назначение. Организация многократного повторения произвольного фрагмента программы. Как правило, этот цикл используется, когда число повторений его известно заранее, и явно есть переменная величина, которая, изменяясь, составляет прогрессию. Она, как правило, является параметром цикла.

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

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

Общий вид оператора цикла for:

for(p1; p2; p3) S;

Синтаксис.

for (выражение1; выражение-условие2; выражение3)

тело цикла;

Здесь

for(p1; p2; p3) - заголовок цикла.

S - простой или составной оператор языка С++ - тело или рабочая часть

цикла.

p1 - список операторов, разделенных запятой, инициирующих начальные значения (как правило) параметров цикла. Эти операторы выполняются один раз до начала выполнения рабочей части цикла. Областью действия переменных, объявленных в этой части цикла, является цикл.

p2 - список операторов и выражений, определяющих условие повторения цикла. Выполняется перед каждым выполнением тела цикла. При этом, если значение последнего выражения списка p2 истинно (!=0), то тело цикла выполняется, а если ложно (==0), происходит выход из цикла к следующему оператору программы.

p3 - список операторов и выражений изменения параметров цикла (подготовка данных для очередного шага цикла). Выполняется после каждого выполнения тела цикла.

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

Здесь параметр цикла составляет прогрессию, и явно присутствует в записи заголовка цикла (так называется строка for(…)). «выражение1» задает начальное значение параметра цикла, «выражение2» задает условие завершения выполнения цикла, и является логическим, «выражение3» задает приращение параметра цикла. Тело цикла — это произвольная последовательность операторов, как правило, составной оператор. Первое и третье выражения могут состоять из нескольких, отделенных друг от друга запятой.

<выражение_1> и <выражение_3> могут состоять из несколь­ких выражений, разделенных запятыми. <выражение 1 > - задает начальные условия для цикла (инициализация ). <выражение-условие> -определяет условие выполнения цикла, если оно не равно 0, цикл выполняется, а затем вы­числяется значение <выражения_3>. <3ыражение_3> - задает изменение параметра цикла или других переменных (коррек­ция) . Цикл продолжается до тех пор, пока <выражение-условие> не станет равно 0. Любое выражение может отсут­ствовать, но разделяющие их « ; » должны быть обязатель­но.

Выполнение. Перед входом в цикл, то есть до первого выполнения тела цикла однократно выполняется выражение1. Тело цикла выполняется многократно, пока «выражение2» (условие) не равно 0. Как только его значение становится равно 0, управление передается следующему по порядку оператору. Проверка условия завершения цикла происходит до выполнения тела цикла.

Блок-схема цикла, for показана на рис. 7.5.

Рис. 7.5. Схемы выполнения цикла for

Запомните:

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

  • на месте выражение 1 и выражение 3 может использоваться несколько выражений, записанных через запятую, и выполняемых последовательно;

  • тело цикла for может быть пустым (такая форма оператора может быть использована для организации поиска).

  • тело цикла for может быть составным (обязательно использовать {});

  • оператор for может быть вложенным.

Пример 7.7

Вычислить и вывести квадраты чисел от 1 до 10.

for (i=1; i<=10; i++) printf("i*i=%d\n",i*i);

Здесь p1 - оператор i=1 (инициирует начальное значение параметра цикла i); p2 выражение i<=10 (определяет условие повторения цикла); p3 - оператор i++ (оператор изменения параметра цикла).

S - оператор printf("i*i=%d\n",i*i); (рабочая часть цикла).

Пример 7.8

Вычислить сумму чисел от 1 до 15.

for (int i=1,q=0; i<=10; i++) q+=i;

Здесь p1 - список операторов, разделенных запятой. Первый из этих операторов (int i=1) объявляет параметр цикла i и инициирует его начальное значение и объявляет и инициирует начальное значение вычисляемой суммы q. Как и в первом примере p2 выражение i<=10; p3 - оператор S - оператор

q+=i;

Пример 7.9

Вычислить сумму чисел от 1 до заданного числа n.

# include<stdio.h>

int main()

{ int i,n,s;

printf("Введите n");

scanf("%d",&n);

s=0;

for(i=1;i<=n;i=i+1) s=s+i; //или for(i=1;i<=n;s+=i++);

printf(" Сумма равна %d",s);

}