Enviado em 18/05/2012 - 16:47h
Boa tarde galera, me tirem um dúvida (talvez básica)...
-----------------------
int main() {
int escolha;
switch(escolha) {
case 0: break;
//... restante
case default: printf("Valor inválido.\n"); main(); break;
}
-----------------------
Caso a escolha não exista no menu ele roda o menu novamente.
Na minha lógica esse "break;" do "case default" na ira ser executado. Só quando o novo "main();" terminar. Já testei isso colocando um "printf("teste");" depois do "main();" e ele realmente não executa.
pergunta 1: Posso deixar sem o "break;" mesmo???
Mas isso é o de menos.
Isso quer dizer que ele não vai finalizar o primeiro "main()" e vai executar o "main()" novamente, e com isso a variável "escolha" vai continuar com um valor inválido.
E tome "loop" no programa.
Alguém ai sabe como 'matar' uma variável na memória? Não pode colocar valor "0" ou qualquer outro valor, pq vai continuar o "loop", ela tem que deixar de existir...
Agradeço a todos,,,
-----------------------
int main() {
int escolha;
switch(escolha) {
case 0: break;
//... restante
case default: printf("Valor inválido.\n"); main(); break;
}
-----------------------
Caso a escolha não exista no menu ele roda o menu novamente.
Na minha lógica esse "break;" do "case default" na ira ser executado. Só quando o novo "main();" terminar. Já testei isso colocando um "printf("teste");" depois do "main();" e ele realmente não executa.
pergunta 1: Posso deixar sem o "break;" mesmo???
Mas isso é o de menos.
Isso quer dizer que ele não vai finalizar o primeiro "main()" e vai executar o "main()" novamente, e com isso a variável "escolha" vai continuar com um valor inválido.
E tome "loop" no programa.
Alguém ai sabe como 'matar' uma variável na memória? Não pode colocar valor "0" ou qualquer outro valor, pq vai continuar o "loop", ela tem que deixar de existir...
Agradeço a todos,,,