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.