Por favor, dígame, ¿después de la pausa en el operador for (i; i>0; i--) se ejecuta la expresión "i--" o simplemente la "expresión 3" (según la documentación)? No pude encontrarlo en el libro de texto.
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
Ivan Butko operador for (i; i>0; i--) se ejecuta la expresión "i--" o sólo la "expresión 3" (según la documentación)? No pude encontrarlo en el libro de texto.
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
Ivan Butko operador for (i; i>0; i--) se ejecuta la expresión "i--" o sólo la "expresión 3" (según la documentación)? No pude encontrarlo en el libro de texto.
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
Después de la ruptura, salir del bucle al siguiente operador después del bucle, después de que el bucle itera hasta el final de la iteración en ese punto y comienza uno nuevo.
Ivan Butko for(i; i>0; i--) { i--; if (i==0) break; }
Print(i); Print(Close[i]);
// El registro dice (-1), cómo así... y, por lo tanto, lamatriz de errorfuera de rango, porque Close[-1] no se produce.
Quiero decir, ¿estoy en lo cierto al entender que después de la ruptura en la cabecera(i; i>0; i--) la tercera expresión "i--" se ejecuta de todos modos?
No preguntes qué clase de tonterías escribo en mi código. Sólo quiero entender los matices de este operador) Parece que en el cuerpo he especificado "es hora de salir de aquí, porque i=0", pero el operador toma y ejecuta de nuevo la expresión, aunque debería pasar el control al siguiente operador
No me preguntes qué clase de tonterías estoy escribiendo. Sólo quiero entender los matices de este operador) Es como si en el cuerpo especificara "es hora de salir de aquí, porque i=0", pero el operador toma y ejecuta de nuevo la expresión, aunque debería pasar el control al siguiente operador
Sí lo hiciste, pero lo quitaste antes de esta comprobación. Escríbelo así
i=10;
for (i; i>0; i--)
{
if (i==0) break;
i--;
}
Print(i);
Print(Close[i]);
Por supuesto, el programa no está esperando que el terminal en un hilo separado para registrar algunos datos.
Gracias, quiero decir
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
Después de la ruptura, salir del bucle al siguiente operador después del bucle, después de que el bucle itera hasta el final de la iteración en ese punto y comienza uno nuevo.
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// En el registro dice (-1), cómo es que... y, por lo tanto, lamatriz de errorfuera de rango, porque Close[-1] no se produce.
Quiero decir, ¿estoy en lo cierto al entender que después de la ruptura en la cabecera(i; i>0; i--) se sigue ejecutando la tercera expresión "i--"?
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// El registro dice (-1), cómo así... y, por lo tanto, lamatriz de errorfuera de rango, porque Close[-1] no se produce.
Quiero decir, ¿estoy en lo cierto al entender que después de la ruptura en la cabecera(i; i>0; i--) la tercera expresión "i--" se ejecuta de todos modos?
Escribe correctamente
No sólo se quita en la cabecera, sino también en el cuerpo del bucle.Escribe correctamente.
No preguntes qué clase de tonterías escribo en mi código. Sólo quiero entender los matices de este operador) Parece que en el cuerpo he especificado "es hora de salir de aquí, porque i=0", pero el operador toma y ejecuta de nuevo la expresión, aunque debería pasar el control al siguiente operador
No me preguntes qué clase de tonterías estoy escribiendo. Sólo quiero entender los matices de este operador) Es como si en el cuerpo especificara "es hora de salir de aquí, porque i=0", pero el operador toma y ejecuta de nuevo la expresión, aunque debería pasar el control al siguiente operador
Sí lo hiciste, pero lo quitaste antes de esta comprobación. Escríbelo así
habrá un resultado diferente
Sí lo hiciste, pero lo quitaste antes de esta comprobación. Escríbalo así
aah... Lo tengo. Entendido.
Gracias a todos por sus rápidas respuestas.
ahh... Lo tengo. Entendido.
Gracias a todos por sus rápidas respuestas.
Tu código imprime 0, no -1...
Probablemente -1 impreso desde otro lugar, lo más probable es que todo el código esté en las impresoras...
Antes de intentar resolver el problema, hay que identificarlo... Asegúrate de que está ahí y localízalo antes de resolverlo...