Marcos Douglas wrote: > Como eu usei muito pouco o GOTO, não tenho um bom exemplo, mas vou tentar: > Vamos supor que ao final de um procedimento, tem-se que executar algumas > instruções, independente do que aconteça no início. Se, logo no início, os > parâmetros não estiverem de acordo com alguma regra de negócio do sistema, > faz-se um GOTO para o fim do procedimento. Mas podemos resolver isso de > muitas formas diferentes para não utilizar o GOTO, certo? Essas instruções, > ao final do procedimento, poderiam estar em outro procedimento que poderia > ser chamado após a falha na regra de negócio ou; Poderíamos (em Pascal) > colocar tudo dentro de um try/finally e executar um Exit, após a falha na > regra de negócio que mesmo assim as instruções no final seriam executadas. > (em Pascal, mesmo após um Exit, o Finally é executado).
Entendo aonde você quer chegar, e do que eu já vi por aí, códigos complicados ou menos comuns são melhor abordados com try/finally, try/except, while, for e repeat. Porque? Todos os usos do goto podem ser abordados por algum destes carinhas, e um código abordado por estes carinhas é mais fácil de entender, extender e manter. Na minha humilde opinião: goto só não devia levar um tiro de bazuca porque alguém pode querer compilar algum algoritmo que foi escrito por Dom Pedro, e de tão complicado que é (pelo excesso de goto) não quer se dar ao trabalho de entender para poder reescrever =) Mas como é só uma opinião... -- Joao Morais