Цикл for в C++

Цикл — многократное прохождение по одному и тому же коду программы. Циклы необходимы программисту для многократного выполнения одного и того же кода, пока истинно какое-то условие. Если условие всегда истинно, то такой цикл называется бесконечным, у такого цикла нет точки выхода.

В языке программирования С++ существуют такие циклы:

Тело цикла будет выполняться до тех пор, пока условие будет истинно(т. е. true).

// форма записи оператора цикла for:

for (/*выражение1*/; /*выражение2*/; /*выражение3*/ )
{
/*один оператор или блок операторов*/;
}

Если в теле цикла for должен выполнится один оператор, тогда фигурные скобки можно опустить:

for (/*выражение1*/; /*выражение2*/; /*выражение3*/)
/*один оператор*/;

Рассмотрим подробно три выражения записанные в круглых скобках цикла forВыражение 1 — объявление (и) или инициализация, ранее объявленной, переменной-счетчика, которая будет отвечать за истинность условия в цикле for. Пример:

int counter = 0; // отсюда видно, что была объявлена переменная counter типа int и инициализирована значением 0

Переменная-счетчик всегда должна иметь целочисленный тип данных. Если переменная была объявлена в цикле (все равно в каком), по завершении цикла эта переменная будет уничтожена.

Разница между объявлением и инициализацией переменной:

counter; // объявление переменой count

counter = 9; // инициализация целочисленной  переменой count значением  9.

Выражение 2 — это условие продолжения цикла for, оно проверяется на истинность.

counter < 10; // условие истинно пока count строго меньше десяти!

Выражение 3 изменяет значение переменной-счетчика. Без выражения 3 цикл считается бесконечным, так как изменение содержимого переменной count выполняться не будет, и если изначально условие было истинным, то цикл будет бесконечным, иначе программа даже не войдет в цикл. Выражения 1, 2, 3 отделяются друг от друга обязательными разделителями, точкой с запятой. Тело цикла обрамляется фигурными скобочками, если тело цикла состоит из одного оператора ,то фигурные скобочки не нужны. Под изменением значения переменной подразумевается уменьшение или приращение значения , например:

for ( int counter = 0; counter < 15; counter++) // выполняется приращение переменной counter с шагом 1 от 0 до 15

Очень часто неправильно интерпретируется запись пределов в цикле for, в нашем случае приращение переменной counter выполняется с шагом 1 от 0 до 15. Обратите внимание на конечный предел. В условии продолжения цикла стоит знак отношения строго меньше, а значит, когда значение в переменной counter будет равно 14, выполнится выход из цикла. Ниже показан пример работы программы (см. Рисунок 1).

// for.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    for (int counter = 0; counter < 15; counter ++ ) // начало цикла
         cout << " " << counter; // тело цикла
    cout << endl;
    system("pause");
    return 0;
}

В строках 9, 10 записан цикл for, причём без фигурных скобочек. А раз отсутствуют фигурные скобочки,  значит, телом цикла является следующий оператор, после заголовка цикла, в нашем случае — это оператор вывода:

cout << " " << counter; // тело цикла

Заголовком цикла for является строка 9:

for (int counter = 0; counter < 15; counter ++ ) // заголовок цикла

Фигурные скобочки можно не опускать, это кому как удобно. Но в данном случае без фигурных скобочек запись кода более компактна, чем со скобочками.

Цикл for в С++

Рисунок 1 — Цикл for в С++

for ( int counter = 14; counter >= 0; counter --) // декремент переменной counter от 14 до 0 включительно

Ниже показан результат работы программы с использованием декремента, для уменьшения значения переменой-счетчика (см. Рисунок 2).

// for_dec.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    for (int count = 14; count >= 0; count --) // заголовок цикла
         cout << " " << count; // тело цикла
    cout << endl;
    system("pause");
    return 0;
}

В заголовке цикла for в условии продолжения цикла мы использовали нестрогий знак отношения >=, чтобы последним значением переменой-счётчика был 0.

оператор цикла for в C++

Рисунок 2 — Цикл for в С++

Шаг в цикле for может быть отличным от единицы, а точнее, любым целым числом.

for ( int counter = 0; counter <= 20; counter += 5) // приращение переменной counter от 0 до 20 включительно с шагом 5

В этом случае переменная counter будет равняться 5, 10, 15, и 20, после чего выполнится выход из цикла for.

for ( int counter = 20; counter >= 0; counter -= 5) // изменение переменной counter от 20 до 0 включительно с шагом 5

Далее показан код программы, которая подсчитывает количество чётных чисел в интервале от 0 до 50 включительно.

// for_example.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    int counter_even = 0; 
    for (int count = 2; count <= 50; count += 2) // заголовок цикла
        counter_even ++; // подсчёт чётных чисел
    cout << "number of even numbers = " << counter_even << endl;
    system("pause");
    return 0;
}

В строке 9 объявлена и инициализирована нулём переменная для хранения количества чётных чисел. В заголовке цикла for в строке 10 переменная counter инициализирована двойкой, так как двойка — первое чётное число, начиная с 0. Шаг цикла равен двум, таким образом следующее чётное число это 4. В строке 11 переменная counter_even инкрементируется на каждом этапе цикла for. Результат работы программы показан ниже (см. Рисунок 3).

Операто цикла for C++

Рисунок 3 — Цикл for в С++

Автор: admin
Дата: 25.08.2012
Поделиться:

Комментарии

  1. mpavelFax

    Заработок на дому официальная работа.

  2. Елена Чупина

    Елена Чупина

    Шаг в цикле for может быть отличным от единицы, а точнее, любым целым числом.

    1

    for ( int counter = 0; counter <= 20; counter += 5) // приращение переменной counter от 0 до 20 включительно с шагом 5

    В этом случае переменная counter будет равняться 5, 10, 15, и 20, после чего выполнится выход из цикла for.

    я правильно поняла, что здесь первое значение counter будет не 5, а 0. То есть на экран будет выведено 0 5 10 15 20 ?

  3. Sideshow

    В языке программирования С++ существуют такие циклы:

    цикл for

    цикл while

    цикл do  while

    Ссылка на статью про цикл while ведёт снова на эту статью про цикл for.

    Исправьте, пожалуйста.

  4. Андрей

    Андрей

    counter; // объявление переменой count
     counter = 9; // инициализация целочисленной  переменой count значением  9.
    А причём counter тогда?

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.