2010-12-28 1 views
0

Possible en double:
GOTO still considered harmful?Goto est-il aussi mauvais que les gens le disent?

Récemment, j'ai lu "Le langage de programmation C" par K & R. Je ne sais pas beaucoup C, mais je connais un peu de Java, et à la page 65 (2e éd.) les auteurs parlent de Goto et comment il est presque toujours non autorisé. Récemment j'ai écrit un jeu, où l'ordinateur doit montrer un niveau primitif d'IA, où j'ai écrit beaucoup de pour, whiles, et ifs en Java pour émuler une sorte d'intelligence. Aussi primitif soit-il, il y avait des «boucles for» à quatre profondeurs avec des déclarations if partout, et à la fin j'ai perdu la trace de l'endroit où mettre les breaks et cassais des boucles tout en faisant des boucles jeu injouable. Finalement, après beaucoup de stress, je l'ai trié.

Ma question est: A quel point Goto est-il mauvais?

Si j'avais un goto dans mon jeu (Java n'en fournit pas vraiment un) je n'aurais pas gaspillé autant de temps à jouer avec les breaks et les brackets. Est-ce que Goto est vraiment si mauvais? Pourquoi sont-ils si détestés?

+1

double: http://stackoverflow.com/questions/46586/goto-still-considered-harmful –

+0

Fondamentalement, pour la même raison que vous vous êtes perdu dans trop de regards imbriqués et si les conditions, le font créent le code de spaghetti. Il est vraiment difficile de maintenir un code qui saute l'exécution constamment. Pour éviter d'avoir trop de boucles imbriquées et de branches conditionnelles, utilisez des fonctions pour mieux organiser votre code. – Luis

+1

Vous auriez fini avec le même problème si vous aviez utilisé les instructions goto. Si vous avez autant de boucles imbriquées, etc., vous devriez probablement structurer votre code différemment pour éviter cela. Cela aide aussi à comprendre ce que vous avez réellement écrit. :) – hangy

Répondre

2

plus goto déclarations dans votre code moins lisible serait votre code, mon avis

+3

Il en va de même pour les fonctions. Une utilisation correcte avec 'goto' ne nuit pas à la lisibilité, et j'ai vu des codes. –

Questions connexes