|
Bas de page | |
---|---|
Auteur | Sujet : Boucles for sans les {} ? |
Publicité | Posté le 23-11-2016 à 11:39:58 |
Farian | Bonjour ! Cela n'a rien à voir avec les espaces ou l'indentation, qui, en effet, ne sont pas pris en compte et ne servent qu'à la lisibilité (pas comme en python, donc). Le contenu de la boucle est soit la "ligne" de code suivante (dont la fin est matérialisée par le point-virgule) suivante, soit le bloc (matérialisé par des accolades) suivant. Dans le cas qui nous intéresse, les deux codes sont strictement équivalents :
et
Si on veut mettre au moins deux "lignes" dans la boucle, il faut absolument définir un bloc avec des accolades. Bonne continuation ! Message édité par Farian le 23-11-2016 à 11:49:24 --------------- On n'est jamais très fort pour ce calcul ! |
kao98 ... | Tout comme pour les if et autres blocs, s'il n'y a pas les accolades, seule l'instruction suivante est concernée.
L'indentation n'est pas nécessaire
Mais c'est, à mon sens, à éviter. Les accolades devraient être toujours présentes. Leurs absence peut souvent être source de bug, parfois très très grave, comme ce fut en partie le cas du bug TLS/SSL d'apple. Edit : Message édité par kao98 le 23-11-2016 à 11:50:48 --------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
Lt Ripley Ils ont tout niqué | Ok merci beaucoup les gars ! |
theshockwave I work at a firm named Koslow |
--------------- last.fm |
Lt Ripley Ils ont tout niqué | Je dirais le 2ème
Message édité par Lt Ripley le 23-11-2016 à 19:07:50 |
benriach | c'est bien cela, d'où l'importance de la forme.
ce qui n'aurait pas posé de problème au compilateur mais ça devient tout de suite incompréhensible. |
rufo Pas me confondre avec Lycos! | C'est clair, je mets toujours les { }
Message édité par rufo le 24-11-2016 à 11:26:31 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
TotalRecall | Comme toi : avec les { } et retours à la ligne systématiques. Même si ça me fait passer pour un vieux rétrograde, je trouve ça considérablement plus lisible.
--------------- Réalisation amplis classe D / T Topic .Net - C# @ Prog |
rufo Pas me confondre avec Lycos! | C'est vrai que le goto, je pensais que ça avait été abandonné depuis la fin des années 90 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
Publicité | Posté le 28-11-2016 à 15:52:49 |
TotalRecall |
Farian | Je crois qu'un certain Linus Torvalds n'est pas de votre avis ...
--------------- On n'est jamais très fort pour ce calcul ! |
TotalRecall | Je crois qu'un certain Edsger Dijkstra n'est pas de l'avis de Linus et toi, et qu'il ne l'était déjà pas avant même de savoir que Linus ne serait pas de son avis
--------------- Réalisation amplis classe D / T Topic .Net - C# @ Prog |
TotalRecall | ... Bon après, je dois reconnaitre que c'est pas forcément un super argument, vu que le monsieur n'était en fait à peu près de l'avis de personne sur tous les sujets --------------- Réalisation amplis classe D / T Topic .Net - C# @ Prog |
Farian | Et , de plus, je n'ai jamais dit que j'étais pour les "goto" ! A titre personnel, je n'ai jamais eu besoin (à part en assembleur) d'en utiliser. --------------- On n'est jamais très fort pour ce calcul ! |
gilou ModérateurModzilla |
Il y a des cas très précis ou ça peut être efficace, en particulier si tu implémentes a la pogne un automate a états finis. --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
rufo Pas me confondre avec Lycos! | Et encore : un automate à états finis, tu peux assez facilement le modéliser avec un réseau de Pétri (donc, des matrices).
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
Lt Ripley Ils ont tout niqué | Je note je note...
|
rufo Pas me confondre avec Lycos! | Mettre des goto un peu partout dans un programme, ça le rend surtout assez compliqué à comprendre parce qu'on passe son temps à sauter d'un endroit à un autre dans le code. Alors qu'avec les structures de contrôle classiques (if/else, for, while, switch...), c'est normalement plus lisible et permet une lecture du code plus linéaire donc, plus facile à comprendre et donc, à débugger ou repérer des erreurs --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
Sujets relatifs | |
---|---|
Rajouter des series en boucles Graphe excel.[Résolu] | tri-fusion, jointure par hachage et boucles imbriquées |
syntaxe des boucles et des "lists comprehensions" [résolu] | Bash avec des boucles à exécuter avec du PHP |
[jquery] Question un peu bateau sur les boucles | [BATCH] 2 boucles FOR imbriquées |
Boucles for imbriquées, macro trop lente | Probleme boucles bash |
Equivalence boucles For et While | (resolu) requetes sur 900 bases mysql avec boucles |
Plus de sujets relatifs à : Boucles for sans les {} ? |