Totalement autodidacte en programmation, c’est toute une vie qu’il m’a fallu pour dégager les conseils que je croix vraiment judicieux proposés sur la Fiche n°7 et la Fiche n°8. Ayant pratiqué une dizaine de langages différents en ayant débuté par de l’assembleur en binaire pur, il faut beaucoup de temps pour dégager les intentions des concepteurs de ces langages chaque fois qu’ils introduisent une nouvelle instruction dans le langage qu’ils développent. (Pour ne pas trop alourdir ce propos, je vais volontairement me limiter ici aux langages algorithmiques et faire une impasse coupable sur leurs opposés les langages déclaratifs.)
Historiquement, quand j’ai commencé à apprendre à programmer en C++, ma victime étant dès les débuts la carte Arduino NANO, je me suis imposé au fur et à mesure de mon apprentissage, attaché à rédiger le petit livret SYNTAXE à imprimer.pdf qui est constamment présent sur le bureau quand je programme. Il me sert de référence, car n’ayant aucune mémoire j’y fais appel en permanence pour retrouver l’écriture exacte ou les spécificités d’une instruction. La rédaction de ce document qui m’est indispensable n’avait pas pour but initialement de le publier, c’était un document personnel comme j’en rédige à foison pour toutes mes activités « informatiques ». Il n’est pas parfait, constellé de compléments ajoutés en surcharge au crayon. Il mériterait d’être entièrement réécrit, mais franchement nous l’utiliserons en l’état car je n’ai pas le courage de le reprendre en totalité.
L’apprentissage en autodidacte est un processus long, passionnant, mais qui exige beaucoup de ténacité et surtout on risque sur la longueur de passer à coté d’un détail important. (Détail et important sont contradictoires !) C’est exactement ce dont j’ai été la victime avec l’instruction do qui peut précéder le while. Et je viens juste maintenant de la redécouvrir, bien qu’elle figure en page 09 depuis toujours. Il est donc important de corriger le tir.
La finalité exacte des boucles for, while et do.
Rien à changer pour les précisions sur le while en Fig.293 pour traiter une boucle dans laquelle on commence par vérifier si l’on peut effectuer le travail avant de passer à l’action. En C++ ce sont les boucles de type while. Ce type de boucle est à choisir impérativement si l’action peut engendrer un risque. Par contre, c’est pour le for que mon explication est à reconsidérer.
Représenté sur la 292 on a une boucle dans laquelle on commence par effectuer le travail. Puis on se demande si c’est terminé ou s’il faut recommencer. En C++ ce sont les boucle de type do, la condition de sortie étant exprimée dans les paramètres. Ce type de boucle est à privilégier lorsque l’action doit être réalisée au moins une fois. La syntaxe est la suivante :
Quand à l’instruction de type for, (Qui intrinsèquement est du type do-while.) est surtout prévue pour réaliser un nombre de fois fini l’action qu’elle supervise. C’est bien parce qu’elle peut se substituer au do-while que je m’en suis servie jusqu’à présent pour ces cas de traitement. Mais dans la mesure ou le existe, c’est un manque d’élégance car cette écriture cache votre réelle intention. Aussi, en résumé, si vous désirez programmer avec rigueur il faut utiliser :
• L’instruction while si l’action peut engendrer un risque.
• L’instruction do – while lorsque l’action doit être réalisée au moins une fois.
• L’instruction for quand on doit effectuer une action un nombre de fois déterminé.
Désolé d’avoir réalisé « ce détail » un peu tard, du coup tous mes programmes jusqu’à ce jour manquent non pas de rigueur, car c’est pour moi une obsession, mais un peu d’élégance au sens de la lisibilité. Par exemple il faudrait reprendre tous mes démonstrateurs récursifs en utilisant le do-while à la place des boucles for. J’avoue que ma paresse s’y oppose, c’est l’une de mes faiblesses. N’hésitez-pas à vous y essayer, vos croquis seront incontestablement plus rigoureux que ce que j’ai développé jusqu’à présent.
La boucle est bouclée ! ! !
La suite est ici.