1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida em C

Discussão em 'Programação' iniciada por Myself*, 15 de Novembro de 2007. (Respostas: 7; Visualizações: 776)

  1. Myself*

    Myself* Power Member

    Pessoal... Tenho uma duvida. ​

    Sem efectuar testes, como explico resultado destas instruções? Ajudem-me.

    //a.

    j = 0;

    while ​
    (j<10) printf("-> %i \n",j++);

    //b.

    j = 0;

    while ​
    (j<10); printf("-> %i \n",j++);

    //c.

    j = 0;

    while (j<10) {} printf("-> %i \n",j++);
     
  2. CoolMaster

    CoolMaster Power Member

    Chama-se ir as aulas.... Se eu mandasse em Portugal (ou seja, nesta ***** toda) reprovava um por um, porque pessoas que querem que os outros façam os trabalhos não merecem que lhes ofereçam a qualificação, se me faço entender...
     
  3. Myself*

    Myself* Power Member

    :mad: É uma dúvida... Não estou a pedir k me façam o exercicio. Eu vou as aulas. No entanto, nao consigo resolver este problema, porque não percebo a diferença k faz as {} ou o ; nas alineas!
     
  4. CoolMaster

    CoolMaster Power Member

    Devias ter colocado essa duvida no inicio então, porque não foi isso que pediste/perguntaste.

    O ; significa que estas a finalizar uma "linha" de instrução. Ou seja, printf("ola"); significa que a instrução acabou ali no ; e a seguir podes colocar logo outra.
    Podes colocar ; em todo o lado que é valido, se colocares a finalizar um loop (ciclo) a instrução vai ser vazia, ou seja, o loop processa todo mas não faz nada porque a instrução é vazia.

    Colocares {} significa que estas a criar um bloco de instruções, o facto do bloco estar assim deve estar a confundir-te... é a mesma coisa que:

    j = 0;

    while (j<10) {
    }
    printf("-> %i \n",j++);

    Ou seja, o while não tem instruções, como necessitas de incrementar o j até ser >= 10 nunca vais sair do loop, entras portanto em loop infinito e nunca vais entrar no printf().
     
  5. OubeLa

    OubeLa Power Member

    Correcção:

    while (j<10) {
    printf("-> %i \n",j++);
    }

    Colocaste mal as chavetas.
     
  6. CoolMaster

    CoolMaster Power Member

    Não coloquei nada! Lê o enunciado, lá tem assim! É para os alunos tentarem perceber o que esta de errado...
     
  7. HecKel

    HecKel The WORM

    Será que colocou mal? Olha a explicação dele :P
     
  8. OubeLa

    OubeLa Power Member

    Peço desculpa, nem li aquela parte do enunciado :lol: ao ler aquilo tive logo o impulso de dizer que estaria errado, quando na verdade o que tu querias era demonstrar isso.

    My bad
     

Partilhar esta Página