Поделиться через


для выписки (C++)

Выполняет выписка и цикл- выражение до cond- выражение не будет иметь значение false.Дополнительные сведения о диапазон- зависимости для выписки см. в разделе Основанное на диапазоне выражение for (C++).

for ( init-expression ; cond-expression ; loop-expression )
   statement 

Заметки

Использование оператора for для построения циклы, которые должны выполняться заданное число раз.

Выписка for состоит из 3 частей необязательных, как показано в следующей таблице.

для элементов цикла

Имя синтаксиса

Выполняется

Содержимое

init-выражение

Перед любым другим элементом выписки for.init- выражение выполняется только один раз.Элемент управления затем передается в cond- выражения.

Часто используется для инициализации индексы цикла.Он может содержать выражения или объявления (C - только C-++).

cond-выражение

Перед выполнением каждой итерации выписки, включая первой итерации.выписка выполняется только в том случае, если cond- выражение принимает значение true, (значение не равно нулю).

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

цикл-выражение

В конце каждой итерации выписки.После цикл- выражение выполняется, cond- выражение вычисляется.

Обычно используется для увеличения значения индексов цикла.

Например:

// for_statement1.cpp
#include <stdio.h>
int main() {
int i;
for ( i = 0 ; i < 2 ; i++ ) 
   printf_s( "\n%d\n",i );
}

Предыдущий цикл for эквивалентен следующему цикл while:

// for_statement2.cpp
#include <stdio.h>
int main()
{
   int i = 0;
   while ( i < 2 )
      printf_s( "%d\n", i++ );
}

init- выражение и цикл- выражения могут содержать несколько разделенных выписки оператор-запятая.Например:

// for_statment3.cpp
#include <stdio.h>
int main()
{
   int i, j;
   for ( i = 5, j = 10 ; i + j < 20; i++, j++ )
      printf_s( "\n i + j = %d", (i + j) );
}

Цикл for заканчивается, когда выполняются прерывание, return или переход (для оператора с идентификатором за пределами цикла for ) в рамках выписки.Выписка continue в цикле for завершает только текущую итерацию.

Если cond- выражение не задано, то считается true и цикл for не завершена, break, return или переход внутри выписки.

Удобный способ определения бесконечный цикл с помощью оператора for выглядит следующим образом:

for( ; ; )
{
    // Statements to be executed.
}

Хотя 3 поля выписки for обычно используются для инициализации, тестирования для завершения и увеличение, они не ограничиваются данным используют.Например, следующий код выводит от 0 до 4.В этом случае выписка выражение NULL:

// for_statement4.cpp
#include <stdio.h>
int main()
{
    int i;
    for( i = 0; i < 5; printf_s("%d\n", i), i++)
        ;
}

циклы for стандарта C и C-++

Стандарт C-++ C указывает, что переменная была объявлена в цикле for уйдет из области видимости после завершения цикла for.Например:

for (int i = 0 ; i < 5 ; i++) {
   // do something
}
// i is now out of scope under /Za or /Zc:forScope

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

/Zc: forScope включает стандартное расширение функциональности переменных, объявленных в для циклов без указания /Za.

Также можно использовать различия в области цикла for к переменным redeclare параметра /Ze следующим образом:

// for_statement5.cpp
int main(){
   int i = 0;   // hidden by var with same name declared in for loop
   for ( int i = 0 ; i < 3; i++ ) {}

   for ( int i = 0 ; i < 3; i++ ) {}
}

Этот более точно имитирует стандартное расширение функциональности переменной, объявленной в цикле for, требующий переменных, объявленных в цикле for, вне области видимости после цикл выполняется.Когда переменная объявлена в цикле for, компилятор повысить уровень внутреннее значение локальной переменной в области внешнего цикла for, даже если уже локальная переменная с тем же именем.

См. также

Ссылки

Выписки итерации (C++)

Ключевые слова C++

хотя оператор (C++)

Выражение do-while (C++)

Основанное на диапазоне выражение for (C++)