Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
migg

Loop

Recommended Posts

migg

OLá tanho 13 anos e quero aprender programação saquei um curso em c e eu não entendo bem a diferença entre:

O loop infinito

O loop infinito tem a forma

for (inicialização; ;incremento) declaração;

Este loop chama-se loop infinito porque será executado para sempre (não existindo a condição, ela será sempre considerada verdadeira), a não ser que ele seja interrompido. Para interromper um loop como este usamos o comando break. O comando break vai quebrar o loop infinito e o programa continuará sua execução normalmente.

Como exemplo vamos ver um programa que faz a leitura de uma tecla e sua impressão na tela, até que o usuario aperte uma tecla sinalizadora de final (um FLAG). O nosso FLAG será a letra 'X'.

#include <stdio.h>

#include <conio.h>

int main ()

{

int Count;

char ch;

for (Count=1;;Count++)

        {

        ch = getch();

        if (ch == 'X') break;

        printf("\nLetra: %c",ch);

        }

return(0);

}

O loop sem conteúdo

Loop sem conteúdo é aquele no qual se omite a declaração. Sua forma geral é (atenção ao ponto e vírgula!):

for (inicialização;condição;incremento);

Uma das aplicações desta estrutura é gerar tempos de espera. O programa

#include <stdio.h>

int main ()

{

long int i;

printf("\a");            /* Imprime o caracter de alerta (um beep) */

for (i=0; i<10000000; i++);  /* Espera 10.000.000 de iteracoes */

printf("\a");                /* Imprime outro caracter de alerta */

return(0);

}

Podiam-me explicar melhor sff?

Share this post


Link to post
Share on other sites
pedrosorio

São coisas completamente diferentes.

for(inicialização;condição;incremento)

  {

  código

  }

faz o seguinte:

Começa por executar o código em "inicialização" que é geralmente definir o valor de uma variável. Depois verifica que a "condição" é verdadeira e em caso afirmativo executa o "código" dentro dos {}. Por fim executa o "incremento" que é  como o nome indica geralmente aumentar o valor da variável. Depois verifica que a condição ainda é respeitada, e faz este ciclo até que a condição seja falsa ou se encontrar um break no código.

No primeiro caso o código que está dentro do loop é executado "infinitamente" (ou pelo menos até que encontre um break). Isso acontece porque não colocar condição equivale a colocar uma condição que é sempre verdadeira. No exemplo que eles dão tens um código que mostra a letra pressionada pelo utilizador até que ele carregue na tecla X.

No segundo caso o loop é executado um número de vezes (10 milhões no exemplo) mas sem qualquer código lá dentro, e serve, como eles dizem, para "passar tempo".


Não respondo a dúvidas por mensagem.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.