prohlášení (C++)
Provede příkaz a výraz smyčka opakovaně až do sražené výraz přestane platit.Informace týkající se na na základě rozsahu pro výkaz, viz Příkaz For založený na rozsahu (C++).
for ( init-expression ; cond-expression ; loop-expression )
statement
Poznámky
Použití for příkaz k vytvoření smyčky, které musí být prováděny zadaným počtem opakování.
for Prohlášení se skládá ze tři volitelné části, jak je znázorněno v následující tabulce.
pro prvky smyčky
Syntaxe názvu |
Při spuštění |
Obsah |
---|---|---|
Init výraz |
Před z jiných prvků pro prohlášení.Init výraz je proveden pouze jednou.Ovládací prvek pak průchodech sražené výraz. |
Často slouží k inicializaci indexy smyčky.Může obsahovat výrazy nebo prohlášení (pouze pro jazyk C++). |
sražené výraz |
Před spuštěním každé opakování příkaz, včetně první iteraci.příkaz je proveden pouze v případě sražené výraz vyhodnocen jako true (nenulové). |
Výraz, jehož výsledkem integrálního typu nebo typ třídy, která má jednoznačné převodu na integrální typ.Obvykle se používá k testování kritéria ukončení smyčky. |
výraz smyčka |
Na konci každé opakování příkaz.Po výraz smyčka je proveden, sražené výraz je vyhodnocen. |
Obvykle lze zvýšit smyčky indexy. |
Příklad:
// for_statement1.cpp
#include <stdio.h>
int main() {
int i;
for ( i = 0 ; i < 2 ; i++ )
printf_s( "\n%d\n",i );
}
Předchozí for smyčka je ekvivalentní následujícímu while smyčka:
// for_statement2.cpp
#include <stdio.h>
int main()
{
int i = 0;
while ( i < 2 )
printf_s( "%d\n", i++ );
}
Init výraz a výraz smyčka může obsahovat více příkazů, které jsou odděleny operátor čárka.Příklad:
// 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) );
}
A for ukončí smyčku, kdy Konec, vrátit, nebo goto (označené prohlášení mimo pro smyčky) v rámci příkaz je proveden.A pokračovat v prohlášení v for smyčka ukončí aktuální iterací.
Pokud sražené výraz je tento argument vynechán, předpokládá se true a pro smyčky neukončí bez break, return, nebo goto v prohlášení.
Pohodlný způsob určení nekonečno smyčky pomocí for příkaz je:
for( ; ; )
{
// Statements to be executed.
}
Přestože tří oblastí for prohlášení se obvykle používají pro inicializaci testování pro odstoupení od zakázky a nezvyšuje, nejsou omezeny na tato použití.Například následující kód vypíše čísla 0 až 4.V tomto případě příkaz je null prohlášení:
// for_statement4.cpp
#include <stdio.h>
int main()
{
int i;
for( i = 0; i < 5; printf_s("%d\n", i), i++)
;
}
pro smyčky a C++ Standard
C++ standard říká, že proměnná deklarovaná v for smyčky se dostanou mimo rozsah po for smyčky skončí.Příklad:
for (int i = 0 ; i < 5 ; i++) {
// do something
}
// i is now out of scope under /Za or /Zc:forScope
Ve výchozím nastavení pod /Ze, proměnné deklarované v for smyčky zůstává v rozsahu až for smyčky společnosti orámování končí rozsah.
/Zc:forScope umožňuje standardní chování proměnné deklarované v smyčky for, aniž by bylo nutné určit /Za.
Je také možné použít oboru rozdílů for smyčka redeclare proměnné v rámci /Ze takto:
// 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++ ) {}
}
To lépe napodobuje standardní chování proměnné deklarované v for smyčky, která vyžaduje proměnné deklarované v for smyčka přesahují rozsah platnosti, po dokončení smyčky.Pokud je proměnná deklarována v for smyčky, kompilátor interně propaguje ji místní proměnné v for smyčky společnosti orámování oboru, i v případě, že místní proměnné se stejným názvem již existuje.