Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Qual a diferença de uma condição de entrada para uma condição de saída?

Porque Do-While tem condição de saída?

2 respostas
solução!

Oi Marcelo, como você está?

A condição de entrada irá fazer o teste da condição antes de realizar qualquer procedimento dentro do bloco. Por exemplo:

i = 1
while i <= 5:
    print(i)  
    i = i + 1

Observe que nesse exemplo, primeiro verificamos se a variável i é menor ou igual a 5 e caso seja, iremos fazer algum procedimento dentro do laço(nesse caso, printar a variável i).

Já na condição de saída, fazemos algo primeiro e somente depois verificamos a condição.Porém, o Python não possui um laço com uma condição de saída, que outras linguagens chamam de do-while. Em outras linguagens o do-while é similar ao trecho abaixo:

do
  faca alguma coisa ...
while condicao_para_continuar_executando_o_loop

Observe que fazemos algo primeiro, para somente depois verificar a condição para repetição.

E podemos simular isso no Python, mesmo que ele não tenha o do-while propriamente dito. Veja:

i = 1
while True:
    print(i)  
    i = i + 1  
    if i > 5:
        break

Nesse caso, entramos no laço sem verificar nenhuma condição(while True) e após isso, dentro desse laço verificamos a condição de repetição. Queremos que seja repetido caso a variável i seja menor que 5. E aqui a lógica muda um pouco, na nossa verificação colocamos a condição de parada do loop, ou seja, irá parar o loop quando for maior que 5, enquanto não for, irá repetir o procedimento. O break é para forçar a saída do loop quando atingir a condição de parada da repetição.

A regra e ouro é: queremos testar a condição primeiro? Tudo bem, uso o while. Quero fazer algo primeiro e somente depois testar a condição? Uso a abordagem do do-while. O do-while é utilizado em muitos casos onde precisamos que alguma coisa seja feita pelo menos uma vez, já que utilizando apenas o while, caso a condição seja falsa não será executado nada dentro do bloco, só entrará no bloco caso a condição seja satisfeita.

Qualquer dúvida estou por aqui. Abraços e bons estudos!

Dúvida solucionada! Muito obrigado :)