Existen varios errores frecuentes en el manejo de los bucles. Por ejemplo, incluir un "punto" y coma tras una orden "for" o "while" puede hacer que nada se repita y que el programa se comporte de forma errónea. Por eso, aquí tienes varios ejercicios resueltos, que te ayudarán a "entrenar la vista" para localizar ese tipo de problemas:
¿Qué escribiría en pantalla este fragmento de código?
for (i=1; i<4; i++) Console.Write("{0} ",i);
Respuesta: no escribiría nada, porque la condición es falsa desde el principio.
¿Qué escribiría en pantalla este fragmento de código?
for (i=1; i<=4; i++); Console.Write("{0} ",i);
Respuesta: escribe un 5, porque hay un punto y coma después del "for", de modo que repite cuatro veces una orden vacía, y cuando termina el "for", "i" ya tiene el valor 5.
¿Qué escribiría en pantalla este fragmento de código?
for (i=1; i<4; ) Console.Write("{0} ",i);
Respuesta: escribe "1" continuamente, porque no aumentamos el valor de "i", luego nunca se llegará a cumplir la condición de salida.
¿Qué escribiría en pantalla este fragmento de código?
for (i=1; ; i++) Console.Write("{0} ",i);
Respuesta: escribe números crecientes continuamente, comenzando en uno y aumentando una unidad en cada pasada, pero sin terminar.
¿Qué escribiría en pantalla este fragmento de código?
for ( i = 0 ; i <= 4 ; i++) {
if ( i == 2 ) continue ;
Console.Write("{0} ",i);
}
Respuesta: escribe los números del 0 al 4, excepto el 2.
¿Qué escribiría en pantalla este fragmento de código?
for ( i = 0 ; i <= 4 ; i++) {
if ( i == 2 ) break ;
Console.Write("{0} ",i);
}
Respuesta: escribe los números 0 y 1 (interrumpe en el 2).
¿Qué escribiría en pantalla este fragmento de código?
for ( i = 0 ; i <= 4 ; i++) {
if ( i == 10 ) continue ;
Console.Write("{0} ",i);
}
Respuesta: escribe los números del 0 al 4, porque la condición del "continue" nunca se llega a dar.
¿Qué escribiría en pantalla este fragmento de código?
for ( i = 0 ; i<= 4 ; i++)
if ( i == 2 ) continue ;
Console.Write("{0} ",i);
Respuesta: escribe 5, porque no hay llaves tras el "for", luego sólo se repite la orden "if".