En muchos lenguajes (una amplia lista, de C a JavaScript):
- las comas
,
separan los argumentos (por ejemplofunc(a, b, c)
), mientras que - punto y coma
;
separan instrucciones secuenciales (pinstruction1; instruction2; instruction3
. ej .).
Entonces, ¿por qué esta asignación se invierte en los mismos idiomas para bucles for :
for ( init1, init2; condition; inc1, inc2 )
{
instruction1;
instruction2;
}
en lugar de (lo que me parece más natural)
for ( init1; init2, condition, inc1; inc2 )
{
instruction1;
instruction2;
}
?
Claro, for
es (normalmente) no una función, pero los argumentos (es decir init
, condition
, increment
) se comportan más como argumentos de una función de una secuencia de instrucciones.
¿Se debe a razones históricas / una convención, o hay una buena razón para el intercambio de ,
y ;
en bucles?
;
no |
?" (o ¿Por qué usamos 'otra cosa' no 'en otro caso'? )) que no es el caso de un idioma, pero un gran número de ellos. Una respuesta que, por ejemplo, "se hizo en C como una abreviatura del ciclo while (y las declaraciones múltiples para inc se pensaron solo más tarde), y la gente no quería cambiarla para evitar la irritación de los programadores", estaría perfectamente bien.