Dans de nombreuses langues (une liste étendue, du C au JavaScript):
- virgules
,
séparer les arguments (par exemplefunc(a, b, c)
), tandis que - les points-virgules
;
séparent les instructions séquentielles (par exempleinstruction1; instruction2; instruction3
).
Alors, pourquoi ce mappage est-il inversé dans les mêmes langues pour les boucles for :
for ( init1, init2; condition; inc1, inc2 )
{
instruction1;
instruction2;
}
au lieu de (ce qui me semble plus naturel)
for ( init1; init2, condition, inc1; inc2 )
{
instruction1;
instruction2;
}
?
Bien sûr, for
n’est (généralement) pas une fonction, mais les arguments (c. init
-à- d . condition
, increment
) Se comportent davantage comme des arguments d’une fonction que comme une séquence d’instructions.
Est - ce pour des raisons historiques / une convention, ou est - il une bonne raison pour l'échange de ,
et ;
dans les boucles?
;
pas |
?" (ou Pourquoi utilisons-nous "sinon"? " ) qui n'est pas le cas pour une langue, mais pour un grand nombre d'entre elles. Une réponse, par exemple, "cela a été fait en C comme raccourci pour la boucle While (et plusieurs énoncés pour inca été pensé que plus tard), et les gens ne voulaient pas le changer pour éviter l'irritation des programmeurs" serait parfaitement acceptable.