Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Использование оператора break в цикле for

Вложенные циклы.

Гибкость конструкции for.

Части структуры цикла for –задание начального значения, условия продолжения цикла и изменение переменной могут содержать арифметические выражения. Например, пусть х=2, у=10. Если х и у не изменяются в теле цикла, то оператор

for (int j=x; j<=4*x*y; j+=y/x)

эквивалентен оператору

for (int j=2;; j<=80; j+=5)

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

for (int n=2; n<60; n+=13)

Можно не только увеличивать, но и уменьшать переменную цикла, при этом её начальное значение должно быть больше конечного.

for (int ctr=10; ctr!=0; ctr--)

Это же выражение можно записать следующим образом

for (int ctr=10;ctr; ctr--)

Контрольное выражение ctr!=0 говорит циклу for продолжать тело цикла, пока переменная не станет равна 0, однако, когда переменная станет равна 0, это уже само по себе будет эквивалентно значению ложь, поэтому можно не писать!=0.

Можно опустить одно или более выражений, но нельзя опустить символы «точка с запятой». При этом необходимо включить в тело цикла операторы, приводящие к завершению цикла.

s=2;

for (n=3; s<=25;)

s*=n;

Можно поместить точку с запятой сразу после заголовка for, такая запись часто используется для создания цикла задержки. Такой цикл for с пустым телом выполняется указанное число раз, не делая ничего, кроме подсчёта.

В цикле for можно вести подсчёт с помощью символов, а не только чисел.

for (ch=’a’; ch<=’z’; ch++)

В теле оператора for могут содержаться любые операторы С++, в том числе другие циклы. Если вы помещаете один цикл внутри другого, вы создаёте вложенный цикл. Пример: Нижеприведённая программа печатает три раза числа от 2 до 5 с помощью вложенного цикла.

#include<iostream.h>

void main()

{

int times,num; // переменные внешнего и внутреннего цикла

for (times=1; times<=3; times++)

{for (num=1; num<=5; num++)

{cout<< num<<”\n”;}

}

}

Правило: во вложенных циклах внутренний цикл или циклы выполняются полностью до того, как выполнится очередной шаг внешнего цикла.

Пример использования вложенных циклов. Найти натуральные числа, равные сумме кубов своих цифр.

#include<iostream.h>

void main()

{int x,n,p,s;

for (x=1; x<=2000; x++)

{s=0; p=x;

while(p>0)

{

n=p%10; // вычисляет остаток от целочисленного деления

p=p/10; // если с обеих сторон стоят целые, то остаток

отбрасывается

s=s+n*n*n;

} //конец цикла while

if (x==s)

cout<<x<<endl;

}// конец цикла for

return;

}// конец программы

Для досрочного выхода из цикла for используется оператор break. Чаще всего break используется после проверки условного оператора if. Если вкладывается один цикл в другой, break завершает самый активный цикл, т.е. самый внутренний цикл, в котором расположен оператор break.

#include <iostream.h>

main()

{

int num;

char ans;

cout<<”Печать чисел от 2 до 20\n”;

for(num=1; num<=20; num++)

{ cout<<num<<”\n”;

cout<<”Печатать следующее число (Y/N)?\n”;

cin>>ans;

if ((ans==’N’)||’(ans==’n’))

{break;} //выход из цикла по желанию пользователя

} //конец цикла for

cout<<”конец”;

return (0);

}// конец программы.

<== предыдущая лекция | следующая лекция ==>
Структура повторения for | Оператор goto и метки
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 421; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.