for (référence C#)for (C# reference)

L’instruction for exécute une instruction ou un bloc d’instructions tant qu’une expression booléenne donne la valeur true.The for statement executes a statement or a block of statements while a specified Boolean expression evaluates to true.

À tout moment dans le bloc d’instructions for, vous pouvez sortir de la boucle à l’aide de l’instruction break, ou passer à l’itération suivante de la boucle à l’aide de l’instruction continue.At any point within the for statement block, you can break out of the loop by using the break statement, or step to the next iteration in the loop by using the continue statement. Vous pouvez également quitter une boucle for en utilisant les instructions goto, return ou throw.You also can exit a for loop by the goto, return, or throw statements.

Structure de l’instruction forStructure of the for statement

Chaque instruction for définit des sections initialiseur, condition et itérateur :The for statement defines initializer, condition, and iterator sections:

for (initializer; condition; iterator)
    body

Ces trois sections sont facultatives.All three sections are optional. Le corps de la boucle est une instruction ou un bloc d’instructions.The body of the loop is either a statement or a block of statements.

L’exemple suivant montre l’instruction for avec toutes les sections définies :The following example shows the for statement with all of the sections defined:

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

La section initialiseurThe initializer section

Les instructions figurant dans la section initialiseur sont exécutées une seule fois, avant d’entrer dans la boucle.The statements in the initializer section are executed only once, before entering the loop. La section initialiseur contient au choix :The initializer section is either of the following:

  • La déclaration et l’initialisation d’une variable de boucle locale, qui n’est pas accessible à partir de l’extérieur de la boucle, ouThe declaration and initialization of a local loop variable, which can't be accessed from outside the loop.

  • Zéro, une ou plusieurs expressions d’instruction parmi celles de la liste suivante, séparées par des virgules :Zero or more statement expressions from the following list, separated by commas:

    • Instruction d’assignationassignment statement

    • Appel d’une méthodeinvocation of a method

    • Expression d’incrémentation préfixée ou suffixée, telle que ++i ou i++prefix or postfix increment expression, such as ++i or i++

    • Expression de décrémentation préfixée ou suffixée, telle que --i ou i--prefix or postfix decrement expression, such as --i or i--

    • Création d’un objet à l’aide de l’opérateur newcreation of an object by using the new operator

    • Expression awaitawait expression

La section initialiseur dans l’exemple ci-dessus déclare et initialise la variable de boucle locale i :The initializer section in the example above declares and initializes the local loop variable i:

int i = 0

La section conditionThe condition section

La section condition, si elle est présente, doit être une expression booléenne.The condition section, if present, must be a boolean expression. Cette expression est évaluée avant chaque itération de boucle.That expression is evaluated before every loop iteration. Si la section condition est absente ou que l’expression booléenne est true, l’itération suivante de la boucle est exécutée ; sinon, la boucle est fermée.If the condition section is not present or the boolean expression evaluates to true, the next loop iteration is executed; otherwise, the loop is exited.

La section condition dans l’exemple ci-dessus détermine si la boucle se termine en fonction de la valeur de la variable de boucle locale :The condition section in the example above determines if the loop terminates based on the value of the local loop variable:

i < 5

La section itérateurThe iterator section

La section itérateur définit ce qui se produit après chaque itération du corps de la boucle.The iterator section defines what happens after each iteration of the body of the loop. La section itérateur contient zéro, une ou plusieurs des expressions d’instruction suivantes, séparées par des virgules :The iterator section contains zero or more of the following statement expressions, separated by commas:

  • Instruction d’assignationassignment statement

  • Appel d’une méthodeinvocation of a method

  • Expression d’incrémentation préfixée ou suffixée, telle que ++i ou i++prefix or postfix increment expression, such as ++i or i++

  • Expression de décrémentation préfixée ou suffixée, telle que --i ou i--prefix or postfix decrement expression, such as --i or i--

  • Création d’un objet à l’aide de l’opérateur newcreation of an object by using the new operator

  • Expression awaitawait expression

La section itérateur dans l’exemple ci-dessus incrémente la variable de boucle locale :The iterator section in the example above increments the local loop variable:

i++

ExemplesExamples

L’exemple suivant illustre plusieurs utilisations moins courantes des sections d’instruction for : l’attribution d’une valeur à une variable de boucle externe dans la section initialiseur, l’appel d’une méthode dans les sections initialiseur et itérateur, et la modification des valeurs de deux variables dans la section itérateur.The following example illustrates several less common usages of the for statement sections: assigning a value to an external loop variable in the initializer section, invoking a method in both the initializer and the iterator sections, and changing the values of two variables in the iterator section. Sélectionnez Exécuter pour exécuter l’exemple de code.Select Run to run the example code. Après cela, vous pouvez modifier le code et le réexécuter.After that you can modify the code and run it again.

int i;
int j = 10;
for (i = 0, Console.WriteLine($"Start: i={i}, j={j}"); i < j; i++, j--, Console.WriteLine($"Step: i={i}, j={j}"))
{
    // Body of the loop.
}

L’exemple suivant définit la boucle for infinie :The following example defines the infinite for loop:

for ( ; ; )
{
    // Body of the loop.
}

spécification du langage C#C# language specification

Pour plus d’informations, voir la section Instruction for de la spécification du langage C#.For more information, see The for statement section of the C# language specification.

Voir aussiSee also