Ola senhores, 

Estou estudando um livro chamado: "C REcipes,A Problem-Solution Approach"

Um livro muito legal para desenvolver habilidade de codar, e no caso estou no primeiro codigo que ele deu o titulo de " Soma mais um" abaixo o link do codigo completo.

https://pastebin.com/feMmmZU9

entre a linha 10  e a linha 16 tem um Do-while(inner) dentro de outro Do-while(Outer), a questao é que dentro do DO-While(inner)

O autor define uma varialvel int flag=0

que define se vai continuar o loop (pelo menos acredito assim), uma vez que vc digita uma valor intN igual a qualquer valor entre 0 e 30.000 a variavel flag do while muda para flag= 1, fazendo terminar o loop da intereçao. 

a questao que me vem a cabeça é que se o do-while for 1, normalmente isso gera loop infinito e nao finaliza a interaçao, no caso aonde estou errando na interpretaçao desse codigo?

Exibições: 58

Responder esta

Respostas a este tópico

Boa tarde AA,

vamos analisar o código:

Se você digita um numero entre 0 e 30000, o " if((intN <=0) || (intN > 30000))" não será

atendido, próxima linha não será executada, e "flag" fica 0, e 

e a próxima linha não será executada e o "do" continuará rodando, salva este valor e sai do "do".

Mas se você digitar algo diferente deste intervalo, por exemplos 30001,

o " if((intN <=0) || (intN > 30000))" será atendido e a próxima linha será executada, 

ficando "flag = 1" e mantendo o "do" rodando.

RV

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço