C++ цикл for

Циклы C++

forЦиклы позволяют писать повторяющуюся управляющую структуру, которая выполняет цикл определённое число раз.

Синтаксис

В C++forСинтаксис цикла:

for ( init; condition; increment )
{
   statement(s);
}

Ниже показан поток управления цикла for:

  1. initОн выполняется первым и только один раз. Этот шаг позволяет объявлять и инициализировать любые управляющие переменные цикла. Здесь также можно не писать оператор, при условии, что присутствует точка с запятой.
  2. Затем он определяетconditionЕсли истина, тело цикла выполняется. Если ложь, тело цикла не выполняется, и управление переходит к следующему оператору сразу после цикла for.
  3. После выполнения тела цикла for управление возвращается к указанному вышеincrementоператору. Этот оператор позволяет обновлять управляющую переменную цикла. Этот оператор можно оставить пустым, при условии, что после условия присутствует точка с запятой.
  4. Условие вычисляется снова. Если оно истинно, цикл выполняется, и этот процесс повторяется непрерывно (тело цикла, затем увеличение значения шага, затем повторная проверка условия). Когда условие становится ложным, цикл for завершается.

Блок-схема

C++ 中的 for 循环

Пример

Пример

#include <iostream> using namespace std; int main () { // выполнение цикла for for( int a = 10; a < 20; a = a + 1 ) { cout << "значение a:" << a << endl; } return 0; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

Цикл for на основе диапазона (C++11)

Оператор for позволяет выполнять простую итерацию по диапазону:

int my_array[5] = {1, 2, 3, 4, 5}; // умножить каждый элемент массива на 2 for (int &x : my_array) { x *= 2; cout << x << endl; } // тип auto также появился в новом стандарте C++11 и используется для автоматического определения типа переменной for (auto &x : my_array) { x *= 2; cout << x << endl; }

Первая часть оператора for выше определяет переменную, используемую для итерации по диапазону, точно так же, как переменная, объявленная в обычном цикле for, область видимости которой ограничена только диапазоном цикла. Второй блок после ":" представляет диапазон, по которому будет выполняться итерация.

Пример

#include<iostream> #include<string> #include<cctype> using namespace std; int main() { string str("some string"); // оператор for на основе диапазона for(auto &c : str) { c = toupper(c); } cout << str << endl; return 0; }

Приведённая выше программа использует оператор for на основе диапазона для обхода строки, преобразует все символы в верхний регистр и выводит результат в виде:

SOME STRING

Циклы C++

Другие расширения