Equivalence boucles For et While - Algo - Programmation
Marsh Posté le 27-08-2010 à 11:53:05
for (initialisation; condition; itération) {...} <=> initialisation; while (condition) {...; itération}
Dans le cas d'un while (condition) {...} on a donc initialisation et itération vides. Si on reporte dans le for, ça donne:
for ( ; condition; ) {...}
Le cas limite ou l'équivalence de la première ligne n'est pas respecté, c'est l'écriture de la boucle infinie avec un for:
On peut faire for(;;) {...} mais un while doit avoir quelque chose a évaluer comme condition.
A+,
Marsh Posté le 27-08-2010 à 13:23:29
gilou a écrit : for (initialisation; condition; itération) {...} <=> initialisation; while (condition) {...; itération} |
cependant, ton exemple s'appuie sur le C. Si tu prends la syntaxe du pascal, par exemple, je crois que tu vas te trouver face à un mur pour exprimer un while à partir d'un for. de manière purement algorithmique, les deux ne sont pas si éloignés, mais leur substituabilité (ca se dit, ca ? ) va dépendre purement du langage utilisé.
Marsh Posté le 27-08-2010 à 14:41:26
theShOcKwAvE a écrit : cependant, ton exemple s'appuie sur le C. |
Bien sur, puisque dans son post initial il a parlé de break, qui n'existe dans aucun dialecte du Pascal, il était clair que ses boucles for et while étaient celles avec une syntaxe de type C.
theShOcKwAvE a écrit : Si tu prends la syntaxe du pascal, par exemple, je crois que tu vas te trouver face à un mur pour exprimer un while à partir d'un for. de manière purement algorithmique, les deux ne sont pas si éloignés, mais leur substituabilité (ca se dit, ca ? ) va dépendre purement du langage utilisé. |
Certes, mais le for pascal est un truc foutrement primitif.
La boucle algorithmique, c'est loop {...} boucle infinie, plus une instruction spécifique fin-boucle utilisable dans le corps de la boucle. Et le for pascal n'est pas équivalent à cela.
A+,
Marsh Posté le 27-08-2010 à 10:36:09
Bonjour,
On me dit souvent que les boucles for et while sont équivalentes. Je vois comment simuler simplement une boucle for avec uniquement 1 while et sans instruction du type break...
... Mais comment simuler simplement une boucle while avec uniquement 1 for et sans instruction break?
J'ai beau chercher partout sur internet, on n'explique que la version simple du for simulé avec 1 while... mais jamais le contraire!
Merci beaucoup
---------------
Toute l'actualité joyeuse du Web sur http://joyeux-web.blogspot.com