paulo1205
(usa Ubuntu)
Enviado em 09/04/2017 - 06:41h
Porque é mais fácil atribuir rótulos genéricos do que fazer um pouquinho de esforço mental e examinar caso a caso.
FATO:
goto mal utilizado ou abusado atrapalha a legibilidade do código.
FATO: ponteiro mal utilizado ou abusado atrapalha a legibilidade do código.
FATO: array mal utilizado ou abusado atrapalha a legibilidade do código.
FATO: variável mal utilizada ou abusada atrapalha a legibilidade do código.
FATO: funções mal utilizadas ou abusadas atrapalham a legibilidade do código.
FATO: comentários mal utilizados ou abusados atrapalham a legibilidade do código.
(Acho que deu para pegar a ideia...)
O uso de
goto possibilita programar de modo confuso, sim. Mas a possibilidade de um evento não significa necessariamente que ele vai ocorrer.
Existem casos em que
goto é a solução mais eficiente (maior desempenho), mais compacta (código mais curto ou com menos repetições de blocos de código idênticos), mais elegante (melhor legibilidade e inteligibilidade) ou até mesmo a única possível em problemas de construção de algoritmos. Logo, usar
goto num desses casos não é gambiarra, mas sim sinal de habilidade e inteligência.
Só que esses casos não são muito comuns, principalmente em algoritmos que aparecem em cursos introdutórios de programação. Então um professor preguiçoso acaba afirmando categoricamente que “
goto é ruim”, “
goto é gambiarra”, “
goto é uma técnica obsoleta e que não deve mais ser usada”, ou o pior de todos: “quem usar
goto vai levar ZERO”.
Em C++, o emprego de exceções e da técnica RAII ajudam a evitar alguns usos de
goto que são comuns em C, para tratamento de falhas de aquisição de recursos. Mesmo assim, ainda há usos válidos de
goto em também C++.