Utilizando a estrutura de repetição WHILE com C#

Quando precisamos executar um bloco de código repetidas vezes devemos recorrer às estruturas de repetição. Assim, conseguimos programar o código desejado sem que para isso criemos cópias desse mesmo conjunto de instruções. Com a linguagem C# temos três opções para implementar estruturas de repetição: For, Foreach e While.

Neste documento apresentamos como utilizar o While e o do while.

While

O while trata-se da estrutura de repetição mais utilizada quando programamos com C#. Com ela, enquanto a condição for verdadeira o bloco de código será executado. Primeiramente o sistema testa essa condição. Caso verdadeira, executa as linhas declaradas dentro do while; do contrário, sai do loop.

Sintaxe da estrutura de repetição while:

  while (condição)
  {
           //bloco de código
  }

A sintaxe consiste em declarar a instrução while e, entre parênteses, a condição a ser testada. Em seguida, entre chaves, o bloco de código a ser executado a cada iteração.

Nota: No bloco de código deve ser implementada alguma lógica que torne a condição falsa. Caso isso não seja feita criaremos um loop infinito, que deve ser evitado por “travar” a aplicação.

Do-while

Esta estrutura de repetição funciona de forma semelhante ao while, porém, ela garante que o código dentro do loop seja executado pelo menos uma vez. Para isso, a condição é declarada após o bloco de código.

Sintaxe da estrutura de repetição do-while:

do 
{
  //bloco de código
} while (condição);

A sintaxe consiste na declaração da instrução do seguida do bloco de código. Por fim, tem-se a instrução while, que traz entre parênteses o código a ser testado.

Nota: Conforme demonstrado, essa estrutura deve ser finalizada com um ponto e vírgula (;). Além disso, lembre-se de inserir no bloco de código a lógica necessária para que a condição se torne falsa em alguma execução do loop.

Break

Por padrão um loop só é finalizado quando a condição de parada é atendida. Porém é possível interromper a execução de um laço de repetição utilizando o comando break. Esse comando não espera nenhum parâmetro, portanto basta informar a palavra reservada break na linha em que o loop deve ser interrompido.

No código abaixo o laço deveria ser executado enquanto a variável i fosse menor que 10. Porém, nas linhas 4 e 5 usamos o comando break para interromper o loop caso i seja igual a 5. Neste caso, as instruções das linhas 6 e 7 não serão executadas, então o resultado desse código será a impressão dos valores 1 a 4.

01 int i = 1;
02 while (i < 10)
03 {
04    if(i == 5)
05        break;
06    Console.WriteLine(i);
07    i++;
08 }

Continue

Além do break há outro comando capaz de modificar o fluxo natural de execução de loop: o continue. Esse comando faz com que a execução da iteração/repetição seja finalizada e o fluxo seja direcionado novamente para o início do loop. Dessa forma a condição de parada será novamente avaliada e o loop será executado novamente.

No código abaixo o laço deveria ser executado enquanto a variável i fosse menor que 10, imprimindo todos os valores entre 1 e 10. Porém, nas linhas 4 e 5 fazemos com que o loop seja desviado caso o valor de i seja divisível por 2 (número par). Quando isso ocorrer a linha 6 não será executada e o fluxo do código será enviado novamente para a linha 2, executando o while mais uma vez. O resultado desse código será então a impressão dos valores entre 1 e 10 que não são múltiplos de 2 (números ímpares).

01 int i = 0;
02 while(i < 10){
03  i++;
04  if(i %2 == 0)
05   continue;
06  Console.WriteLine(i);
07 }

Exemplo prático

Para demonstrar o funcionamento do while, criamos um loop que imprimirá no console os valores de 1 a 10.

Exemplo de uso:

int i = 1;
while (i <= 10)
{
  Console.WriteLine(i);
  i++;
}

Analisando o código:

Linha 01: Declaramos a variável i, cujo valor será testado a cada iteração;

Linha 02: Declaramos o while e a condição a ser testada (i ser menor ou igual a 10);

Linha 04: Informamos ao sistema para imprimir no console o valor de i;

Linha 05: Modificamos o valor de i. Essa é a linha responsável por alterar o valor dessa variável e fazer com que a condição declarada no while se torne falsa, interrompendo a execução do loop.