«

»

C++. Циклы

Циклы чрезвычайно важны в программирования на C++, да и в остальных языках. Начнем с теории.

Цикл — это повторение одного и того же участка кода в программе. Последовательность действий, которые повторяются, называют телом цикла. Один проход цикла — это шаг или итерация. Переменные, изменяющиеся внутри цикла и влияющие на его окончание, называются параметрами цикла.

В C++ предусмотрены три оператора, реализующих циклический процесс: while, do..while и for. Рассмотрим каждый из них.

Оператор с предусловием (while)

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

while условие
{
оператор_1;
оператор_2;

оператор_n;
}

Рассмотрим пример. Пусть нам необходимо составить программу, которая в зависимости от возраста пользователя определяла сколько лет ему осталось до выхода на пенсию. При условии, что пенсионный возраст наступает в 56 лет.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
using namespace std;
int main ()
{
int x, y, i, pen; //описаваем нужные переменные
x=0; //стартовое значение переменной
y=56; //определяем пенсионный возраст
while (x<=3) //пока параметр цикла не превышает конечное значение.
//выполнять тело цикла
{
cout<<"How old are you? \n";
cin>>i;
pen=y-i;
cout<<"Remained until retirement (years) = "<<pen<<endl;
x++; //изменение параметра цикла (аналогично x=x+1 (расмотрим в последующих уроках))
}
system ("pause");
return 0;
}

Вот результат работы программы

Цикл с постусловием (do…while)

Иногда возникает необходимость, чтобы тело цикла выполнилось хотя бы один раз, но условие не позволяет этому случится. Вот именно тут нам поможет цикл с постусловие do…while. Который реализован следующей конструкцией:

do оператор while (выражение);

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

Рассмотрим код на примере прошлой программы, изменив некоторые строки.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
using namespace std;
int main ()
{
int x, y, i, pen; //описаваем нужные переменные
x=0; //стартовое значение переменной
y=56; //определяем пенсионный возраст
do
{
cout<<"How old are you? \n";
cin>>i;
pen=y-i;
cout<<"Remained until retirement (years) = "<<pen<<endl;
x++; //изменение параметра цикла (аналогично x=x+1)
}
while (x<=-1); //условие ложно, но цикл выполняется 1 раз
system ("pause");
return 0;
}

Цикл с параметром (for)

Данный цикл можно представить такой конструкцией;

for (начальные_присваивания; выражение; приращение) оператор;

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

Давайте на примере задачи рассмотрим цикл с параметром. Нам необходимо посчитать сумму чисел от 1 до 500. Делаем:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
using namespace std;
int main ()
{
int i; //определяем переменную
int sum = 0;
for (i=1; i<=500; i=i+1) // задаем начальное значение, конечное 500, шаг цикла
{
sum = sum + i;
}
cout << "The sum of the numbers from 1 to 500 = " <<sum<<endl;
system ("pause");
return 0;
}

 

Ответ будет 125250.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Проверка на человечность *