• [^] # Re: toto

    Posté par . En réponse à la dépêche Un moteur de recherche de code source OpenSource. Évalué à 5.

    > C'est quoi un break hormis un goto avec du sucre syntaxique qui
    > permet d'avoir un label implicite ?

    Toutes les structures de contrôle sont du sucre autour de goto si tu vas par là. Prend un while par exemple, ça se compile en gros comme ça :
    ...
    WHILE:
    - faire le test
    - saut conditionnel vers ELIHW
    - contenu de la boucle
    - saut inconditionel vers WHILE
    ELIHW:
    ...
    L'intérêt du break est le même que celui des autres instructions affectant le flot de contrôle : se passer du goto, tellement généraliste qu'il permet de faire des trucs infâmes, et ne donner accès qu'à des patterns de plus haut niveau, bien connus et maîtrisables.

    > Pour faire du traitement d'erreur dans un langage ne disposant
    > pas d'exception je suis désolé mais je vois pas plus propre/lisible
    > que les goto

    Moi non plus, mais je vois ça comme une lacune de ces langages. Attention, je dis pas non plus qu'il faudrait un mécanisme complet d'exceptions en C... Mais par contre, avoir juste un mécanisme de sorties multiples pour les blocs aurait été une bonne chose. En gros, un pattern implémentant la seule bonne utilisation des goto à être restée en plan, mais qui ne permettrait pas pour autant les autres bidouilles infâmes.