Luiz Souza
Há mais de um mês
O comando de repetição while tem duas partes: a expressão de teste e o corpo da repetição. O formato do while é:
while (expressão teste)
corpo da repetição
A expressão teste é inicialmente avaliada para verificar se o laço deve terminar. Caso a expressão seja verdadeira (isto é, diferente de 0 (zero)), o corpo da repetição é executado. Depois desta execução, o processo é repetido a partir da expressão teste. O corpo do laço, por sua vez, pode ser uma sentença simples ou composta.
O exemplo abaixo mostra o uso do comando de repetição while:
int contador = 0; while( contador < 5 ) { printf( "contador = %d\n", contador); contador += 1; } printf("ACABOU !!!!\n");
Saída:
contador = 0 contador = 1 contador = 2 contador = 3 contador = 4 ACABOU !!!!
Neste exemplo, a expressão de teste é contador < 5, e o corpo do laço é a sentença printf().
Se examinarmos cuidadosamente este exemplo, veremos que a variável contador é inicializada com 0 (zero) quando é definida. Depois disso, a expressão de teste é verificada e, como 0 < 5 é verdadeiro, o corpo da repetição é executado. Assim, o programa imprime contador = 0, e incrementa contador de um (através do pós-decremento indicado no argumento de printf()). Em seguida, a expressão de teste é verificada novamente e todo o processo se repete até que contador seja 4 e contador = 4 seja impresso.
Depois disso, contador é incrementado para 5 e o teste é executado. Mas desta vez, 5 < 5 é falso, então o laço não continua. A execução do programa continua na sentença que segue o laço (no caso, imprimir a frase ACABOU !!!).
Após a execução do while, a variável contador tem valor 5.
No exemplo acima, há uma sentença simples no corpo da repetição. Quando este for definido por uma sentença composta (bloco), não se deve esquecer de usar as chaves ({ e }) para delimitar o bloco da sentença composta.
O exemplo seguinte mostra um uso mais apropriado do comando while: Em situações onde o número de repetições não é conhecido antes do inicío do comando while:
Exemplo 1:
Este programa pede números ao usuário até que a soma de todos os números digitados for pelo menos 20.
#include <stdio.h> main( ){ int total = 0, num; while( total < 20 ) { printf( "Total = %d\n", total ); printf( "Entre com um numero: " ); scanf( "%d", &num ); total += num; } printf( "Final total = %d\n", total ); }
Exemplo de saída:
Total = 0 Entre com um numero: 3 Total = 3 Entre com um numero: 8 Total = 11 Entre com um numero: 15 Final total = 26
Inicialmente, é dado o valor 0 à variável total, e o teste é verdadeiro (0 < 20). Em cada iteração, o total é impresso e o usuário digita um número que é somado a total. Quanto total for maior ou igual a 20, o teste do while torna-se falso, e a repetição termina.
O comando de repetição while tem duas partes: a expressão de teste e o corpo da repetição. O formato do while é:
while (expressão teste)
corpo da repetição
A expressão teste é inicialmente avaliada para verificar se o laço deve terminar. Caso a expressão seja verdadeira (isto é, diferente de 0 (zero)), o corpo da repetição é executado. Depois desta execução, o processo é repetido a partir da expressão teste. O corpo do laço, por sua vez, pode ser uma sentença simples ou composta.
O exemplo abaixo mostra o uso do comando de repetição while:
int contador = 0; while( contador < 5 ) { printf( "contador = %d\n", contador); contador += 1; } printf("ACABOU !!!!\n");
Saída:
contador = 0 contador = 1 contador = 2 contador = 3 contador = 4 ACABOU !!!!
Neste exemplo, a expressão de teste é contador < 5, e o corpo do laço é a sentença printf().
Se examinarmos cuidadosamente este exemplo, veremos que a variável contador é inicializada com 0 (zero) quando é definida. Depois disso, a expressão de teste é verificada e, como 0 < 5 é verdadeiro, o corpo da repetição é executado. Assim, o programa imprime contador = 0, e incrementa contador de um (através do pós-decremento indicado no argumento de printf()). Em seguida, a expressão de teste é verificada novamente e todo o processo se repete até que contador seja 4 e contador = 4 seja impresso.
Depois disso, contador é incrementado para 5 e o teste é executado. Mas desta vez, 5 < 5 é falso, então o laço não continua. A execução do programa continua na sentença que segue o laço (no caso, imprimir a frase ACABOU !!!).
Após a execução do while, a variável contador tem valor 5.
No exemplo acima, há uma sentença simples no corpo da repetição. Quando este for definido por uma sentença composta (bloco), não se deve esquecer de usar as chaves ({ e }) para delimitar o bloco da sentença composta.
O exemplo seguinte mostra um uso mais apropriado do comando while: Em situações onde o número de repetições não é conhecido antes do inicío do comando while:
Exemplo 1:
Este programa pede números ao usuário até que a soma de todos os números digitados for pelo menos 20.
#include <stdio.h> main( ){ int total = 0, num; while( total < 20 ) { printf( "Total = %d\n", total ); printf( "Entre com um numero: " ); scanf( "%d", &num ); total += num; } printf( "Final total = %d\n", total ); }
Exemplo de saída:
Total = 0 Entre com um numero: 3 Total = 3 Entre com um numero: 8 Total = 11 Entre com um numero: 15 Final total = 26
Inicialmente, é dado o valor 0 à variável total, e o teste é verdadeiro (0 < 20). Em cada iteração, o total é impresso e o usuário digita um número que é somado a total. Quanto total for maior ou igual a 20, o teste do while torna-se falso, e a repetição termina.