Структура повторения for.
Оператор break.
Для досрочного выхода из цикла в теле оператора while и do while может использоваться оператор break. Он располагается внутри цикла, чтобы при определённых условиях закончить цикл. После выполнения оператора break выполняются операторы, следующие за циклом.
Рассмотрим следующий пример:
#include <iostream.h>
void main()
{
int k;
char ans;
do
{cout<<”С++ -отличный язык\n”;
cout<<”Введите 0 для выхода из цикла\n”;
cin>>k;
if(k==0)
break; // выход из цикла
cout<<”Повторить цикл? (N/Y)\n”;
cin>>ans;
}
while((ans==’Y’||(ans==’y’));
cout<<”Конец программы\n”;
return 0;
}
Цикл for используется в тех случаях, когда известно число повторений. Структура цикла for записывается следующим образом:
For (инициализация; контрольное выражение; счётчик)
{ Блок из одного или более операторов С++;
}
Когда структура for начинает выполняться, управляющая переменная объявляется и ей задаётся начальное значение. Счётчик вычисляется при каждом повторении цикла, обычно это инкремент или декремент переменной. Результат контрольного выражения рассматривается как истина или ложь и определяется, должно ли тело цикла выполняться ещё раз. Цикл продолжается, если условие истинно, в противном случае цикл заканчивает свою работу и управление передаётся оператору, следующему за for. Оператор for – это цикл с предусловием.
for (int counter=1; counter<=10; counter++)
cout<< counter<<endl;
Инициализация
counter=1
Проверка
контрольного
выражения true
counter<=1 cout<< counter counter++
false Тело цикла Изменение
управлящей
переменной
Если тип управляющей переменной задаётся в заголовке цикла for перед именем переменной, то управляющая переменная может использоваться только в теле структуры for, т.е. значение управляющей переменной будет неизвестным вне структуры for. Это ограниченное использование имени управляющей переменной называют областью действия переменной, определяющей, где она может быть использована в программе.
Пример: дано натуральное число n. Вычислить сумму и распечатать
S=(1/sin1 +1/(sin1+sin2)+…+1/(sin1+sin2+…+sin(n)))
#include<iostream.h>
#include<math.h>
void main()
{
float i,n,r;
double s;
s=r=o;
cout>>”Введите n\n”;
cin>>n
for (I=1; I<=n; i++)
{r+=sin(i);
s+=1/r;
}
cout<<”S=”<<s<<endl;
cout<<n;
return ;
}
Пример: Даны действительные числа а и b (а<b) и натуральное число n, функция y=x+cos(x), определённая на отрезке [a,b]. Для значений аргументов x=a+i*n (i=0,1,2,..n), h=(b-a)/n. Вычислить значение функции. Распечатать таблицу значений х и соответствующих значений у.
#include<iostream.h>
#include<math.h>
void main()
{
float a,b,h,n,I;
double x,y;
cout<<”Введите a,b,n\n”;
cin>>a>>b>>n;
h=(b-a)/n;
cout<<”x”<<” “<<”y”<<endl;
for (i=0; i<=n; i++)
{
x=a+i*h;
y=x+cos(x);
cout<<x<<” “<<y<<endl;
}
{