русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Цикл for


Дата добавления: 2015-01-08; просмотров: 966; Нарушение авторских прав


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

for (инициализация; условие продолжения; оператор)

инструкция;

В цикле for обычно используется счетчик – переменная, которая хранит номер текущей итерации (повторения) и используется для проверки необходимости выхода из цикла. Инструкция, содержащаяся в секции инициализации, выполняется один раз в начале работы оператора for. Обычно при этом задается начальное значение счетчика (нижняя граница цикла).

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

Третья часть цикла for – оператор используетсяобычно для изменения значения счетчика. Инструкция, содержащаяся в этой секции, будет выполняться после завершения каждой итерации цикла.

Инструкция, следующая за оператором for, называется телом цикла. Именно она будет повторяться до тех пор, пока выполняется условие продолжения.

Предостережение! Если в теле цикла должна находится не одна, а более инструкций, необходимо использовать операторный блок – фигурные скобки {}. Типичная ошибка новичка – написание после оператора for нескольких инструкций без {} в расчете на то, что они попадут в тело цикла. В результате в цикле будет повторяться только самая первая инструкция.

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

#include <iostream>

using namespace std;



void main ()

{

setlocale(LC_ALL, "Russian");

int a, b, c;

int sum = 0;

cout << "Введите 2 целых числа\n";

cin >> a >> b;

if (a > b)

{

// добиваемся того, чтобы a было меньше b

c = b;

b = a;

a = c;

}

 

for (int i = a; i <= b; i++)

sum += i;

cout << "Сумма чисел от " << a << " до " << b << " составляет "

<< sum << endl;

system("pause");

}

Здесь счетчиком цикла является переменная i, объявленная внутри цикла на этапе инициализации. При этом область действия такой переменной будет ограничена только самим циклом, т.е. после него она видна не будет. Это типичная практика, если значение счетчика не нужно сохранять после выполнения цикла.

Предостережение! Довольно распространенной ошибкой является неверное написание оператора, изменяющего счетчик – в данном случае это i++. Эта инструкция должна именно изменять значение счетчика. Например, i++ значит то же что i += 1 и то же что i = i + 1. Это действие увеличивает значение, хранящееся в i, на единицу. Если здесь написать i + 1, то значение i никогда не изменится, условие продолжения цикла будет всегда истинным и цикл окажется бесконечным. Кроме того, в операторе for не рекомендуется изменять значение счетчика внутри тела цикла, т.к. подобные действия затрудняют понимание программы.

В цикле for можно использовать одновременно несколько переменных – счетчиков или просто выполнять несколько действий в секциях инициализации и изменения счетчиков. Например:

float x, y;

for (x = 0, y = 20; x < y; x += 0.5, y -= 0.7)

{

cout << x << '\t' << y;

cout << "\tРазность: " << y - x << endl;

}

Здесь используются две переменные цикла: x и y, начальные значения которых задаются на этапе инициализации цикла. Обе они изменяются по завершении каждой итерации: x увеличивается на 0.5, y – уменьшается на 0.7. Поскольку в теле цикла должны находиться 2 инструкции, они заключаются в операторный блок с помощью {}.

Еще одно отличие от предыдущего примера – здесь переменные x и y объявлены не в цикле, а в основной программе, поэтому они будут доступны и после выполнения оператора for.

Любая из секций в заголовке цикла может быть пропущена. Цикл из предыдущего примера может быть переписан следующим образом:

float x = 0, y = 20;

for ( ; x < y; ) // символы ';' ставятся несмотря на пропущенные секции

{

cout << x << '\t' << y;

cout << "\tРазность: " << y - x << endl;

x += 0.5;

y -= 0.7;

}

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

for(;;)

Такие циклы иногда используются в программах (обычно если условие продолжения/выхода является сложным), и для выхода из них применяется оператор break, который будет рассмотрен позднее.

Еще одной возможностью C++ является создание «пустого» цикла, т.е. цикла, не имеющего тела. Так как после оператора for одна инструкция обязательна по синтаксису, вместо нее ставят пустой оператор – «;», который лучше располагать на новой строке, чтобы его было хорошо заметно при чтении программы. В таких циклах полезная работа выполняется в заголовке for. Например, вычисление факториала.

int n;

long fact = 1;

cout << "Введите целое число ";

cin >> n;

for (int i = 1; i <= n; fact *= i++)

;

cout << "\nЕго факториал: " << fact << endl;



<== предыдущая лекция | следующая лекция ==>
Оператор switch | Цикл while


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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