Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

valeria catraio

linguagem C

Recommended Posts

Olá Valeria!

Excelente pergunta!

Vamos relembrar que o while e o do-while são laços de repetição que realizam as instruções dentro do bloco enquanto uma condição é satisfeita. Acredito que até aí você sabe.

Veja as sintaxes abaixo:

do{
    instrução 1;
    instrução 2;
    instrução 3;
}while(condição);
while(condição){
    instrução 1;
    instrução 2;
    instrução 3;
}

A diferença está justamente no momento em que a condição é validada.

O comando while é recomendado quando a condição já é conhecida antes do laço, exemplo:

    int x;
    x = 10;

    while(x < 10){
        printf("%d e menor que 10\n");
        x--;
    }

Neste exemplo, já definimos o valor antes do laço. Se por um descuido x não tivesse valor associado, este while poderia entrar em loop infinito.

O do-while é recomendado para a situação em que a condição de parada seja "conhecida" durante o laço, veja este exemplo:

    int x;

    do{
        printf("Digite o '0' para sair deste laço: ");
        scanf("%d", &x);
    }while(x != 0);

O laço irá encerrar quando o usuário digitar 0.

Em questão de legibilidade o comando while é o mais recomendado (e também o mais utilizado) pois já conhecemos qual a condição para que o laço se encerre.

Resumindo:

"Laços while e do-while são apropriados para situações em que o laço pode ser terminado inesperadamente por condições desenvolvidas dentro do corpo do laço.

(...)O corpo de um laço while pode nunca ser executado. Entretanto, o corpo de um laço do-while é sempre executado pelo menos uma vez" - Treinamento em Linguagem C - Viviane Victornie Mizrahi

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.