pour l'instruction (c)
L'instruction d' for vous permet de répéter une instruction ou une instruction composée un nombre spécifié de fois.Le corps d'une instruction d' for est exécuté zéro ou plusieurs fois jusqu'à ce qu'une condition facultatif soit false.Vous pouvez utiliser des expressions facultatives dans l'instruction d' for pour initialiser et modifier des valeurs pendant l'exécution de l'instruction d' for .
Syntaxe
- itération instruction:
for ( init-expressionsélectionnez ; cond-expressionsélectionnez ; loop-expressionsélectionnez )statement
L'exécution d'une instruction d' for continue comme suit :
init-expression, le cas échéant, est évalué.Cela spécifie l'initialisation de la boucle.Il n'existe aucune restriction au type d' init-expression.
cond-expression, le cas échéant, est évalué.Cette expression doit avoir une opération arithmétique ou le type pointeur.Elle est évaluée avant chaque itération.Trois résultats sont possibles :
Si cond-expression est vraie (une valeur différente de zéro), statement est exécuté ; ensuite loop-expression, le cas échéant, est évalué.loop-expression est évalué après chaque itération.Il n'existe aucune restriction sur son type.Les effets secondaires exécuteront dans l'ordre.Le processus commence ensuite de nouveau avec l'évaluation d' cond-expression.
Si cond-expression est omis, cond-expression est considéré comme la valeur true, et l'exécution se poursuit exactement comme décrit dans le paragraphe précédent.Une instruction d' for sans argument d' cond-expression se termine uniquement lorsqu'une instruction d' break ou d' return dans le corps d'instruction est exécutée, ou lorsque goto (à une instruction étiquetée à l'extérieur de le corps d'instruction d' for ) est exécuté.
Si cond-expression est false (0), l'exécution de l'instruction d' for s'arrête et le contrôle passe à l'instruction dans le programme.
Une instruction d' for se termine également lorsque break, goto, ou l'instruction d' return dans le corps d'instruction est exécuté.Une instruction d' continue dans une boucle d' for cause loop-expression d'être évaluée.Lorsqu'une instruction d' break est exécutée dans une boucle d' for, loop-expression n'est pas évalué ou n'est pas exécuté.Cette instruction
for( ;; )
est la méthode usuelle de produire une boucle infinie qui peut être quittée avec break, goto, ou l'instruction d' return .
Code
Cet exemple illustre l'instruction d' for :
// 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;
}
Sortie
Number of spaces: 4
Number of tabs: 2