for (referência de C#)for (C# reference)

A instrução for executa uma instrução ou um bloco de instruções enquanto uma expressão booliana especificada é avaliada como true.The for statement executes a statement or a block of statements while a specified Boolean expression evaluates to true.

Em qualquer ponto dentro do bloco de instrução for, você pode sair do loop usando a instrução break ou seguir para a próxima iteração no loop usando a instrução 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. Você também pode sair de um loop for com a instrução goto, return ou throw.You also can exit a for loop by the goto, return, or throw statements.

Estrutura da instrução forStructure of the for statement

A instrução for define as seções de inicializador, condição e iterador:The for statement defines initializer, condition, and iterator sections:

for (initializer; condition; iterator)
    body

Todas as três seções são opcionais.All three sections are optional. O corpo do loop é uma instrução ou um bloco de instruções.The body of the loop is either a statement or a block of statements.

A exemplo a seguir mostra a instrução for com todas as seções definidas:The following example shows the for statement with all of the sections defined:

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

A seção inicializadorThe initializer section

As instruções na seção de inicializador são executadas apenas uma vez, antes de entrar no loop.The statements in the initializer section are executed only once, before entering the loop. A seção inicializador é uma das seguintes:The initializer section is either of the following:

  • A declaração e a inicialização de uma variável de loop local, que não pode ser acessada de fora do loop.The declaration and initialization of a local loop variable, which can't be accessed from outside the loop.

  • Zero ou mais expressões de instrução da lista a seguir, separadas por vírgulas:Zero or more statement expressions from the following list, separated by commas:

    • instrução de atribuiçãoassignment statement

    • invocação de um métodoinvocation of a method

    • prefixo ou sufixo da expressão incrementar, como ++i ou i++prefix or postfix increment expression, such as ++i or i++

    • prefixo ou sufixo da expressão decrementar, como --i ou i--prefix or postfix decrement expression, such as --i or i--

    • criação de um objeto usando o operador newcreation of an object by using the new operator

    • expressão awaitawait expression

A seção inicializador no exemplo acima declara e inicializa a variável de loop local i:The initializer section in the example above declares and initializes the local loop variable i:

int i = 0

A seção condiçãoThe condition section

A seção condição, se presente, deverá ser uma expressão booliana.The condition section, if present, must be a boolean expression. Essa expressão é avaliada antes de cada iteração do loop.That expression is evaluated before every loop iteration. Se a seção condição não estiver presente ou a expressão booliana for avaliada como true, a próxima iteração do loop será executada; caso contrário, o loop será finalizado.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.

A seção condição no exemplo acima determina se o loop será encerrado com base no valor da variável de loop local:The condition section in the example above determines if the loop terminates based on the value of the local loop variable:

i < 5

A seção iteradorThe iterator section

A seção iterador define o que acontece depois de cada iteração do corpo do loop.The iterator section defines what happens after each iteration of the body of the loop. A seção iterador contém zero ou mais das seguintes expressões de instrução, separadas por vírgulas:The iterator section contains zero or more of the following statement expressions, separated by commas:

  • instrução de atribuiçãoassignment statement

  • invocação de um métodoinvocation of a method

  • prefixo ou sufixo da expressão incrementar, como ++i ou i++prefix or postfix increment expression, such as ++i or i++

  • prefixo ou sufixo da expressão decrementar, como --i ou i--prefix or postfix decrement expression, such as --i or i--

  • criação de um objeto usando o operador newcreation of an object by using the new operator

  • expressão awaitawait expression

A seção iterador no exemplo acima incrementa a variável de loop local:The iterator section in the example above increments the local loop variable:

i++

ExemplosExamples

O exemplo a seguir ilustra vários usos menos comuns das seções de instrução for: atribuir um valor a uma variável de loop externa na seção inicializador, invocar um método inicializa nas seções de inicializador e de iterador e alterar os valores de duas variáveis na seção de iterador.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. Selecione Executar para executar o código de exemplo.Select Run to run the example code. Depois disso, você pode modificar o código e executá-lo novamente.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.
}

O exemplo a seguir define o loop for infinito:The following example defines the infinite for loop:

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

Especificação da linguagem C#C# language specification

Para obter mais informações, confira a seção A instrução for na Especificação da linguagem C#.For more information, see The for statement section of the C# language specification.

Consulte tambémSee also