View Full Version : Duvida em C
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++);
CoolMaster 15-11-2007, 20:09 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...
: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!
CoolMaster 15-11-2007, 20:32 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().
sir_atmc 15-11-2007, 20:46 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().
Correcção:
while (j<10) {
printf("-> %i \n",j++);
}
Colocaste mal as chavetas.
CoolMaster 15-11-2007, 20:53 Correcção:
while (j<10) {
printf("-> %i \n",j++);
}
Colocaste mal as chavetas.
Não coloquei nada! Lê o enunciado, lá tem assim! É para os alunos tentarem perceber o que esta de errado...
Correcção:
while (j<10) {
printf("-> %i \n",j++);
}
Colocaste mal as chavetas.
Será que colocou mal? Olha a explicação dele :P
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().
sir_atmc 15-11-2007, 21:59 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
|
|