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

Responder a