Neste artigo, aprenderemos sobre o while e do … while loop em C #, como usá-los e a diferença entre eles.
Na programação, geralmente é desejado executar determinado bloco de instruções por um determinado número de vezes. Uma possível solução será digitar essas instruções o número necessário de vezes. No entanto, o número de repetições pode não ser conhecido com antecedência (durante o tempo de compilação) ou talvez grande o suficiente (digamos, 10000).
A melhor solução para esse problema é o loop. Os loops são usados na programação para executar repetidamente um determinado bloco de instruções até que alguma condição seja atendida.
Neste artigo, aprenderemos a usar loops while em C #.
Loop while C #
A palavra-chave while é usada para criar um loop while em C #. A sintaxe do loop while é:
while (test-expression) (// corpo do while)
Como funciona o loop while?
- O loop while do C # consiste em a
test-expression
. - Se o
test-expression
for avaliado paratrue
,- instruções dentro do loop while são executadas.
- após a execução, o
test-expression
é avaliado novamente.
- Se o
test-expression
for avaliado comofalse
, o loop while termina.
while loop fluxograma
Exemplo 1: while Loop
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1; while (i<=5) ( Console.WriteLine("C# For Loop: Iteration (0)", i); i++; ) ) ) )
Quando executamos o programa, a saída será:
C # For Loop: Iteração 1 C # For Loop: Iteração 2 C # For Loop: Iteração 3 C # For Loop: Iteração 4 C # For Loop: Iteração 5
Inicialmente, o valor de i é 1.
Quando o programa atinge a instrução de loop while,
- a expressão de teste
i <=5
é avaliada. Como i é 1 e1 <= 5
étrue
, ele executa o corpo do loop while. Aqui, a linha é impressa na tela com a Iteração 1 e o valor de i é aumentado em 1 para se tornar 2. - Agora, a expressão de teste (
i <=5
) é avaliada novamente. Desta vez também, a expressão retornatrue
(2 <= 5), então a linha é impressa na tela e o valor de i agora é incrementado para 3 … - Isso vai e o loop while executa até que i se torne 6. Nesse ponto, a expressão de teste será avaliada
false
e, portanto, o loop termina.
Exemplo 2: loop while para calcular a soma dos 5 primeiros números naturais
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1, sum=0; while (i<=5) ( sum += i; i++; ) Console.WriteLine("Sum = (0)", sum); ) ) )
Quando executamos o programa, a saída será:
Soma = 15
Este programa calcula a soma dos 5 primeiros números naturais.
- Inicialmente, o valor de soma é inicializado em 0.
- Em cada iteração, o valor de soma é atualizado para
sum+i
e o valor de i é incrementado em 1. - Quando o valor de i atinge 6, a expressão de teste
i<=5
retorna falso e o loop termina.
Vamos ver o que acontece no programa fornecido em cada iteração.
Inicialmente, i = 1, soma = 0
Enquanto etapas de execução de loopIteração | Valor de i | i <= 5 | Valor da soma |
---|---|---|---|
1 | 1 | verdade | 0 + 1 = 1 |
2 | 2 | verdade | 1 + 2 = 3 |
3 | 3 | verdade | 3 + 3 = 6 |
4 | 4 | verdade | 6 + 4 = 10 |
5 | 5 | verdade | 10 + 5 = 15 |
6 | 6 | falso | Loop termina |
Portanto, o valor final da soma será 15.
C # do … loop while
A palavra-chave do e while é usada para criar um loop do … while. É semelhante a um loop while, mas há uma grande diferença entre eles.
No loop while, a condição é verificada antes que o corpo seja executado. É exatamente o oposto no loop do … while, ou seja, a condição é verificada depois que o corpo é executado.
É por isso que o corpo do loop do … while será executado pelo menos uma vez, independentemente da expressão de teste.
A sintaxe para do … while loop é:
do (// corpo do do while loop) while (test-expression);
Como… o loop while funciona?
- O corpo do loop do … while é executado primeiro.
- Em seguida, o
test-expression
é avaliado. - Se
test-expression
fortrue
, o corpo do loop é executado. - Quando o
test-expression
éfalse
, do … while termina o loop.
do … while loop fluxograma
Exemplo 3: fazer … while loop
using System; namespace Loop ( class DoWhileLoop ( public static void Main(string() args) ( int i = 1, n = 5, product; do ( product = n * i; Console.WriteLine("(0) * (1) = (2)", n, i, product); i++; ) while (i <= 10); ) ) )
Quando executamos o programa, a saída será:
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
As we can see, the above program prints the multiplication table of a number (5).
- Initially, the value of i is 1. The program, then enters the body of do… while loop without checking any condition (as opposed to while loop).
- Inside the body, product is calculated and printed on the screen. The value of i is then incremented to 2.
- After the execution of the loop’s body, the test expression
i <= 10
is evaluated. In total, the do… while loop will run for 10 times. - Finally, when the value of i is 11, the test-expression evaluates to
false
and hence terminates the loop.
Infinite while and do… while loop
If the test expression in the while and do… while loop never evaluates to false
, the body of loop will run forever. Such loops are called infinite loop.
For example:
Infinite while loop
while (true) (// corpo do loop while)
Infinito do … while loop
do (// corpo do loop while) while (true);
O loop infinito é útil quando precisamos que um loop seja executado enquanto nosso programa for executado.
Por exemplo, se seu programa for uma animação, você precisará executá-lo constantemente até que seja interrompido. Nesses casos, um loop infinito é necessário para manter a execução da animação repetidamente.