TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: remi04 en 23 de Mayo de 2017, 17:39:18
-
En un cicle For, por ejemplo en el codigo de ejemplo, la variable I se incrementa de cero a 5 ejecutando las instrucciones 5 veces, luego sale del bucle pero he visto que I se incrementa en una unidad mas. es decir, al terminar el bucle, I se queda con valor = 6.
Si la salida del bucle se fuerza con un break, " al recibirse el caracter ',' en el caso del ejemplo, la variable I en este caso no vale 6, sino 5.
La pregunta es si es correcta mi observación y si hay alguna forma de hacer que en ambos casos I no se incremente una de mas al terminar el bucle.
for (i=0;i<=5;i++)
{
pack5[i] = getchar();
if (pack5[i] == ',')
break;
}
-
Te traduzco
for (i=0;i<=5;i++) {
if (pack5[i] == ',')
break;
}
Es igual a:
i=0;
while(i<=5) {
if (pack5[i] == ',')
break;
i++;
}
Saludos.
-
Muchas gracias picuino.
-
En un cicle For, por ejemplo en el codigo de ejemplo, la variable I se incrementa de cero a 5 ejecutando las instrucciones 5 veces, luego sale del bucle pero he visto que I se incrementa en una unidad mas. es decir, al terminar el bucle, I se queda con valor = 6.
Si la salida del bucle se fuerza con un break, " al recibirse el caracter ',' en el caso del ejemplo, la variable I en este caso no vale 6, sino 5.
La pregunta es si es correcta mi observación y si hay alguna forma de hacer que en ambos casos I no se incremente una de mas al terminar el bucle.
for (i=0;i<=5;i++)
{
pack5[i] = getchar();
if (pack5[i] == ',')
break;
}
Si quieres que no llegue hasta 6 tienes qué cambiar el <= por < de esta forma ya no te hace el paso por el 5 tambien. O tambien puedes poner un 4 en lugar de 5.