pro výpis (C)
for Příkaz umožňuje opakovat prohlášení nebo složené prohlášení podle zadaného počtu opakování.Těla for dotaz je proveden nula nebo vícekrát, dokud nebude volitelné podmínka NEPRAVDA.Můžete zadat volitelné výrazy v rámci for příkaz k inicializaci a změnit hodnoty během for spuštění příkazu.
Syntaxe
- Opakování příkazu:
for( init-expressionopt ; cond-expressionopt ; loop-expressionopt )statement
Provádění for prohlášení probíhá následujícím způsobem:
init-expression, Pokud existuje, je vyhodnocen.Tato hodnota určuje inicializace smyčky.Neexistuje žádné omezení na druhu init-expression.
cond-expression, Pokud existuje, je vyhodnocen.Tento výraz musí být typu aritmetický nebo ukazatel.Je vyhodnocen před každou iteraci.Jsou možné tři výsledky:
Pokud cond-expression je PRAVDA (nenulové), statement je proveden; pak loop-expression, pokud existuje, je vyhodnocen.loop-expression Je vyhodnocen po každé iteraci.Není k dispozici žádná omezení jejího typu.Vedlejší účinky se spustí v pořadí.Celý proces potom začne znovu s hodnocení cond-expression.
Pokud cond-expression je vynechán, cond-expression je považován za hodnotu true a provádění procesu přesně tak, jak je popsáno v předchozím odstavci.A for výpis bez cond-expression argument ukončí pouze tehdy, když break nebo return je proveden příkaz v těle prohlášení, nebo když goto (označené prohlášení mimo for prohlášení subjektu) je proveden.
Pokud cond-expression je false (0), provádění for příkaz ukončí a ovládací prvek předá řízení do dalšího programu.
A for prohlášení také ukončí, když break, goto, nebo return je proveden příkaz v těle prohlášení.A continue prohlášení v for smyčka způsobí, že loop-expression má být vyhodnocen.Při break dotaz je proveden uvnitř for smyčka, loop-expression není vyhodnocena, nebo provedena.Toto prohlášení
for( ;; )
je obvyklý způsob, jak vytvořit nekonečnou smyčku, která může být ukončen pouze s break, goto, nebo return prohlášení.
Kód
Tento příklad ukazuje for prohlášení:
// c_for.c
int main()
{
char* line = "H e \tl\tlo World\0";
int space = 0;
int tab = 0;
int i;
int max = strlen(line);
for (i = 0; i < max; i++ )
{
if ( line[i] == ' ' )
{
space++;
}
if ( line[i] == '\t' )
{
tab++;
}
}
printf("Number of spaces: %i\n", space);
printf("Number of tabs: %i\n", tab);
return 0;
}
Výsledek
Number of spaces: 4
Number of tabs: 2