Follow

Petite question aux
Que pensez-vous de l'instruction "break" dans votre code ?
Pour ma part, j'évite absolument de l'utiliser. Je préfère trouver la bonne condition de sortie d'une boucle, quitte à ne pas utiliser un for le cas écéhant ou ne jamais utiliser les switchs.
Quel est votre positionnement dessus ?
En plus de mémoire, le break est une instruction qui envoie au interruption système, mais ça fait longtemps donc j'ai un doute.

@Alyve Non, break ne fait aucune interrup system.
Mais oui, c’est à éviter !

@Alyve Comme l'instruction `continue`, je m'en sert occasionnellement lorsque j'ai une boucle complexe dont je peux déterminer au début de l'itération si je doit intérompre le fonctionnement.

@Alyve Des souvenir que j'ai de mes cours d'algo, les gens recommande de l'éviter parceque tu peux te retrouver avec une boucle qui à plusieur méchanisme de sortie de ta boucle, ce qui peut la rendre très compliqué à lire.

C'est pour ça que je m'en sert exclusivement en coupe circuit évident dans mes algo

@Alyve Non, en C le break ne fait pas une interruption système : c'est juste un genre de goto. Un code C est de toutes façons compilé vers de l'assembleur, qui n'est au final qu'un genre de langage goto. La raison pour laquelle on déconseille le break ou le goto, c'est qu'il peut parfois freiner la lisibilité : la condition d'arrêt d'une boucle devient non triviale.

De mon côté je programme surtout dans des langages fonctionnels, donc le break, ça n'existe même pas. Mais on a un problème similaire par exemple en OCaml : vaut-il mieux renvoyer un type option ou se baser sur des exceptions ? Je préfère immensément le type option, car il m'assure que je ne vais jamais oublier de traiter un cas, ce qui me force à mettre un message d'erreur qui a du sens. ☺️

@Alyve Pas de problème 😊 Il faudrait que je précise un truc : quand on bosse dans les langages formels, on a une position bizarre. On connaît bien la sémantique des langages, mais comme on ne programme que très peu, il est très difficile de dire si une pratique est lisible ou non. Du coup mon avis sur s'il faut utiliser un break ou non est à prendre avec des pincettes ☺️

J'admets être surpris par exemple sur le fait que tu indiques éviter les switch à cause des break : pour moi, un switch bien fait peut-être super lisible ! 😀 C'est probablement une déformation professionnelle : dans des langages fonctionnels, on ne jure que par le pattern-matching. Mais c'est difficile de transposer tout ça au C… peut-être qu'un switch n'est pas aussi lisible que je l'imagine, c'est difficile à dire.

Sign in to participate in the conversation
Hostux.social

This service is offered by hostux.net, visit our website to discover all the free services offered.
Beer, privacy and free software lovers. Join us!