Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Laço For | Loops
Noções Básicas de C#
course content

Conteúdo do Curso

Noções Básicas de C#

Noções Básicas de C#

1. Começando
2. Lidando com Tipos de Dados
3. Estruturas de Controle
4. Loops
5. Arrays
6. Métodos

book
Laço For

Um loop nos permite executar um pedaço de código quantas vezes quisermos. Existem diferentes tipos de loops. Em C#, se quisermos executar um pedaço de código um número específico de vezes, usamos o for-loop.

O modelo (sintaxe) de um for loop é o seguinte:

Exemplo:

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Nota

i++ é o mesmo que i = i + 1. Ele incrementa o valor da variável em 1. i– decrementa o valor em 1.

  • int i = 0 é a parte de iniciação. A iniciação é feita quando o loop começa. Assim, no início do loop, uma nova variável temporária chamada i é criada e iniciada com um valor de 0;
  • i < 10 é a condição. A condição é verificada a cada iteração (repetição) do loop. O loop continua executando o bloco de código enquanto a condição for verdadeira;
  • i++ é a operação a ser realizada após cada iteração. A operação geralmente é incremento ou decremento. Como o valor de i é incrementado após cada iteração, a condição i < 10 se torna falsa após 10 iterações e o loop para;

O diagrama a seguir explica o fluxo de um for-loop de maneira visual:

É importante notar que todos os três componentes initiation, condition e operation são opcionais e, portanto, qualquer um deles pode ser omitido, mas o loop pode se comportar de maneira diferente com base nas alterações.

Não é uma prática recomendada, mas podemos declarar a variável do loop fora do loop e deixar a parte de initiation vazia.

cs

main

copy
12345678910111213141516
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Também podemos remover a parte de operation e colocá-la no final do bloco de código do loop. O loop se comportará da mesma forma que antes, pois a variável i ainda está sendo incrementada após cada iteração.

cs

main

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }

Note que no código acima ainda colocamos um ponto e vírgula (;) na sintaxe do loop onde o int i = 0 era esperado. Este ponto e vírgula deve sempre estar presente, quer criemos uma variável de loop ou não.

Remover a condição do loop também é possível, mas faz com que o loop seja executado infinitamente caso não seja encerrado manualmente (o que aprenderemos mais nos capítulos posteriores).

cs

main

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }

Note que ainda incluímos ambos os pontos e vírgulas na sintaxe do loop for(;;), estes são essenciais, caso contrário, o compilador mostrará erros.

Como o valor de i muda a cada iteração, podemos usá-lo a nosso favor. Para entender isso, vamos olhar para um programa simples que exibe o valor de i a cada iteração:

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }

Note que termina em 9 porque começa com o dígito 0. O número total de iterações foi dez. Podemos modificar a iniciação, condição e a operação para exibir os dez números pares de 2 a 20.

Nota

Números pares são os números que são divisíveis por 2. Por exemplo, 2, 4, 6, 8, 10, etc. Números pares também incluem o número 0, mas lidaremos apenas com números pares acima de 0 nestes exemplos.

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }

Nota

i += 2 é uma forma mais curta de escrever i = i + 2. Esta sintaxe também é válida para outros operadores, por exemplo, i -= 2, i *= 2, i /= 2, i %= 2 etc.

O loop começa com 0 e aumenta o valor de i em 2 a cada iteração. Alteramos a condição para i <= 20 para que o loop pare em 20.

A lógica acima foi para entender o funcionamento de um for-loop. Podemos usar uma lógica muito mais simples para exibir os primeiros dez números pares:

cs

main

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }

Neste caso, a condição é muito mais simples. Por exemplo, se quisermos os primeiros 27 números pares, teremos que saber qual é o 27º número par para poder formar a condição para o método anterior, no entanto, neste caso, simplesmente precisamos modificar a condição para i <= 27:

cs

main

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
Qual será a saída do seguinte programa? O valor de `sum` aumenta a cada iteração por `i`, portanto, seu valor durante as quatro primeiras iterações será: `1`, `3`, `6`, `10`.

Qual será a saída do seguinte programa? O valor de sum aumenta a cada iteração por i, portanto, seu valor durante as quatro primeiras iterações será: 1, 3, 6, 10.

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 1
We're sorry to hear that something went wrong. What happened?
some-alt