while quer dizer enquanto. Funciona da seguinte maneira enquanto a
condição é verdadeira o laço é executado repetidas vezes. Vejamos a
estrutura:
while (CONDIÇÃO){
INSTRUÇÕES
}
Diferente do for o while tem só a condição como critério de repetição.
Enquanto a condição é verdadeira o laço acontece, quando a condição for
falsa o laço parará de executar as instruções.
Do quer dizer fazer. O algoritmo executa primeiro para depois conferir a
condição. Esta é a vantagem: As instruções são executadas pelo menos
uma vez com o do-while. Vejamos:
do{
INSTRUÇÕES
}while(CONDIÇÃO);
O incremento no caso do while e do-while acontece dentro das instruções,
ou alguma leitura contradiz a condição. Às vezes o seu while pode ter
uma condição sempre verdadeira, então ele sempre repetirá as instruções,
mas é sempre bom ter uma condição de parada acessível para o usuário.
Prática
Este primeiro algoritmo, exibe todos os números de 1 a 100:
#include "stdio.h" #include "stdlib.h" int main(){ int i=1; while(i<=100){ printf("%d\n",i); i++; } getchar(); return(0); }
O exemplo seguinte, é bem interessante, pois usa um flag como condição de parada do while:
#include "stdio.h" #include "stdlib.h" int main(){ int valor; int x; printf("Digite 0 para finalizar!") while(valor!=0){ printf("Digite um valor: "); scanf("%d",&valor); if (valor!=0){ x = valor; } } printf("O ultimo valor digitado eh: %d",x); getchar(); getchar(); return(0); }
Como já visto o do-while executa pelo menos uma vez o laço, vejamos:
#include#include int main(){ int valor; do{ printf("Digite um numero entre 100 e 1000: "); scanf("%d",&valor); }while(valor<100 valor="valor">1000); printf("Número aceito: %d", valor); getchar(); getchar(); return(0); }
Exercício
Compreenda os algoritmos(lógica) em java do post Estruturas de Repetição II e escreva-os em C.
Até+
Na próxima postagem dando continuidade ao C, quero falar(escrever) sobre os arrays(vetores).