Ir ao conteúdo

Problema dev c (Laço de repetiçao)


gilsonfbf

Posts recomendados

Postado

Ja procurei esta duvida nao so neste forum mas no google e nao achei nada.

A quase 4 messes vinha usando o dev c no meu computador sem nenhum problema. Precisei formatar ele, instalei o windows com o mesmo cd da instalação antiga. A única mudança de hardware foi uma nova placa de video (imagino que isso nao influencia em nada). Instalei o dev c, so que agora quando coloco qualquer laço de repetiçao ex: for (i=0;i=5;i++){comando} demora muito pra copilar e quando execulta entra em loop eterno. Usei o comando de print para saber como a variavel i se comporta e descobri que a variavel i ja inicia no valor de saida. Instalei uma versao mais antiga do dev c e apresentou o mesmo erro. Alguem ja passou por isso? Seria problema na instalação do window? Problema na memoria ram?

Desde ja agradeço a ajuda...

Postado

Iae cara, beleza?

Vamos 1º observar o que esse for faz:

for (i = 0; i = 5; i++) {

comando;

}

a primeira parte é para você inicializar a variável de controle, i recebe 0. beleza.

agora a parte do meio é o teste lógico que faz com que o bloco de comandos internos às chaves seja executado. Em C, qualquer valor diferente de zero é dado como verdadeiro e igual como falso. Você já percebeu que toda vez que o laço é repetido ele atribui 5 a i e isso faz com que ele nunca dê resultado falso?

Você poderia fazer o seguinte, se você quiser que o laço se repita até que ele se torne maior que 5 o for ficaria:

for (i = 0; i <= 5; i++)

comado;

aí ele iria contar e avaliar se o valor de i era menor ou igual a 5. A partir do momento em que ele se tornar 6, vai dar falso porque é maior que 5, ou seja, NÃO é menor ou igual a 5, daí ele sai do laço e continua a execução do seu programa.

deu para entender o porquê de seu programa sempre entrar em loop infinito?!

Espero ter ajudado.

Falou, abraço

Postado
for (i=0;i=5;i++){comando}

cara o problema tá no i=5, o correto seria i!=5,quando você coloca o i=5, automaticamente, o laco fica verdadeiro para sempre (ja q variavel i fica com 5 associada a ela e nao 0) e nunca sai do loop

  • Membro VIP
Postado
cara o problema tá no i=5, o correto seria i!=5,quando você coloca o i=5, automaticamente, o laco fica verdadeiro para sempre (ja q variavel i fica com 5 associada a ela e nao 0) e nunca sai do loop

Exatamente.Como não foi estabelecida a condição de parada,entraremos em loop infinito.Abraços.

Postado

E que imaginei que o primeiro campo fosse o valor inicial, o segundo campo independente da comparação seria o campo de saída. e que fiz um programa que gostaria que saísse igual a 5. pode sair também como maior do que quatro, mas se apertar 6 tb sai. Achei que igual a 5 no campo de saiada ficaria mais elegante.

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!