Ir para conteúdo

POWERED BY:

Arquivado

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

SetoKaioX

Laço "do ... while"

Recommended Posts

Olá.

 

Estou com duvida com laço "do... while", já quebrando a cabeça a alguns dias sem encontrar resposta. Posso usar operador AND pra testar a condição??? Tentei usar nessa função que acha MMC mas laço não repete (acabe usando loof infinito for pra fazer, mas quero saber se tem como fazer com while).

 

int FATORA(int x,int y) //Usa fatoração para encontrar MMC
{
   int divisor=2, mmc=1;
   do{
       if(x%divisor==0 || y%divisor==0) mmc=mmc*divisor;
       if(x%divisor==0) x=x/divisor;
       if(y%divisor==0) y=y/divisor;
       if(x%divisor!=0 && y%divisor!=0) divisor++;
   }while(x!=1 && y!=1) //Certo seria repetir laço até que ambos os números sejam diferentes de 1, mas laço termina assim que chega aqui.
   return(mmc);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

while(x!=1 && y!=1) //Certo seria repetir laço até que ambos os números sejam diferentes de 1, mas laço termina assim que chega aqui.

 

"até que" e "enquanto" são coisas diferentes

linguagens como Pascal e Bash usam "Repeat Until", ou seja "repita...até que", ou seja, a iteração ocorre até que se satisfaça a condição. C usa "do...while" ou "faça...enquanto", ou seja, a iteração ocorre enquanto a condição for verdadeira.

 

Seu loop se repete enquanto ambos forem diferentes de 1, não até quando ambos forem diferentes de 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

while(x!=1 && y!=1) //Certo seria repetir laço até que ambos os números sejam diferentes de 1, mas laço termina assim que chega aqui.

 

"até que" e "enquanto" são coisas diferentes

linguagens como Pascal e Bash usam "Repeat Until", ou seja "repita...até que", ou seja, a iteração ocorre até que se satisfaça a condição. C usa "do...while" ou "faça...enquanto", ou seja, a iteração ocorre enquanto a condição for verdadeira.

 

Seu loop se repete enquanto ambos forem diferentes de 1, não até quando ambos forem diferentes de 1

 

Obrigado pela correção cara, não me expressei bem relação a isso. Reparei que usando o "do... while" dessa forma (como usei ai), quando uma das variavéis chega a 1 o laço acaba, não continua da maneira correta - "faça equanto x for diferente de 1 e faça enquanto y for diferente de 1".

Isso que estou com dúvida, posso testar multiplas condições usando AND no while? Pois só consegui usando OR (engraçado que ai, AND se comportou como OR).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi nd..

poste um código atualizado e vamos com calma.

 

[]s

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.