for (Riferimenti per C#)for (C# reference)

L'istruzione for esegue un'istruzione o un blocco di istruzioni mentre un'espressione booleana specificata restituisce true.The for statement executes a statement or a block of statements while a specified Boolean expression evaluates to true.

In un punto qualsiasi all'interno del blocco dell'istruzione for è possibile uscire dal ciclo usando l'istruzione break o passare all'iterazione successiva nel ciclo con l'istruzione 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. Si può uscire da un ciclo for anche usando l'istruzione goto, return o throw.You also can exit a for loop by the goto, return, or throw statements.

Struttura dell'istruzione forStructure of the for statement

L'istruzione for definisce le sezioni inizializzatore, condizione e iteratore:The for statement defines initializer, condition, and iterator sections:

for (initializer; condition; iterator)
    body

Le tre sezioni sono facoltative.All three sections are optional. Il corpo del ciclo è un'istruzione o un blocco di istruzioni.The body of the loop is either a statement or a block of statements.

L'esempio seguente illustra l'istruzione for con tutte le sezioni definite:The following example shows the for statement with all of the sections defined:

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

Sezione inizializzatoreThe initializer section

Le istruzioni nella sezione inizializzatore vengono eseguite una sola volta, prima dell'avvio del ciclo.The statements in the initializer section are executed only once, before entering the loop. La sezione inizializzatore può essere costituita da quanto segue:The initializer section is either of the following:

  • Dichiarazione e inizializzazione di una variabile di ciclo locale, non accessibile dall'esterno del ciclo stesso.The declaration and initialization of a local loop variable, which can't be accessed from outside the loop.

  • Zero o più istruzioni, ricavate dal seguente elenco, separate da virgole:Zero or more statement expressions from the following list, separated by commas:

    • Istruzione di assegnazioneassignment statement

    • Chiamata di un metodoinvocation of a method

    • Espressione di incremento in forma prefissa o suffissa, ad esempio ++i o i++prefix or postfix increment expression, such as ++i or i++

    • Espressione di decremento in forma prefissa o suffissa, ad esempio --i o i--prefix or postfix decrement expression, such as --i or i--

    • Creazione di un oggetto con l'operatore newcreation of an object by using the new operator

    • Espressione awaitawait expression

La sezione inizializzatore dell'esempio precedente dichiara e inizializza la variabile di ciclo locale i:The initializer section in the example above declares and initializes the local loop variable i:

int i = 0

Sezione condizioneThe condition section

La sezione condizione, se presente, deve essere un'espressione booleana.The condition section, if present, must be a boolean expression. Tale espressione viene valutata prima di ogni iterazione del ciclo.That expression is evaluated before every loop iteration. Se la sezione condizione non è presente o l'espressione booleana restituisce true, viene eseguita la successiva iterazione del ciclo; in caso contrario, si esce dal ciclo.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 sezione condizione dell'esempio precedente determina se il ciclo termina in base al valore della variabile di ciclo locale:The condition section in the example above determines if the loop terminates based on the value of the local loop variable:

i < 5

Sezione iteratoreThe iterator section

La sezione iteratore definisce cosa accade dopo ogni iterazione del corpo del ciclo.The iterator section defines what happens after each iteration of the body of the loop. La sezione iteratore contiene zero o più delle espressioni di istruzione seguenti, separate da virgole:The iterator section contains zero or more of the following statement expressions, separated by commas:

  • Istruzione di assegnazioneassignment statement

  • Chiamata di un metodoinvocation of a method

  • Espressione di incremento in forma prefissa o suffissa, ad esempio ++i o i++prefix or postfix increment expression, such as ++i or i++

  • Espressione di decremento in forma prefissa o suffissa, ad esempio --i o i--prefix or postfix decrement expression, such as --i or i--

  • Creazione di un oggetto con l'operatore newcreation of an object by using the new operator

  • Espressione awaitawait expression

La sezione iteratore dell'esempio precedente incrementa la variabile di ciclo locale:The iterator section in the example above increments the local loop variable:

i++

EsempiExamples

L'esempio seguente illustra alcuni utilizzi meno comuni delle sezioni dell'istruzione for: assegnazione di un valore a una variabile di ciclo esterna nella sezione inizializzatore, chiamata di un metodo sia nella sezione inizializzatore che nella sezione iteratore e modifica dei valori di due variabili nella sezione iteratore.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. Selezionare Esegui per eseguire il codice di esempio.Select Run to run the example code. Dopo l'esecuzione è possibile modificare il codice ed eseguirlo di nuovo.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'esempio seguente definisce il ciclo for infinito:The following example defines the infinite for loop:

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

Specifiche del linguaggio C#C# language specification

Per altre informazioni, vedere la sezione L'istruzione for della specifica del linguaggio C#.For more information, see The for statement section of the C# language specification.

Vedere ancheSee also