noviembre 10, 2011

Break y Continue

Las instrucciones break y continue son instrucciones que sirven para interrumpir al flujo de ejecución de las instrucciones de repetición (bucles). Estas instrucciones siempre deben de ir dentro de un bucle ya sea for o while, porque de caso contrario Java nos botara un error de compilación; usualmente estas instrucciones van después de un if para que si la condición se cumple se ejecuten estas instrucciones, pero no necesariamente deben ir después de un if. Como ya mencionamos debemos situar estas instrucciones dentro de un bucle, pero en el caso del break también puede ser utilizado dentro de un switch como ya lo hemos estudiado con anterioridad.

break

La instrucción break sera fácil de entender puesto que ya la hemos estudiado con el uso del switch; tiene la misma función que en el switch, cuando el programa encuentra nuestra instrucción break dentro del ciclo, interrumpe el ciclo, se sale del ciclo y se empieza a ejecutar la primera linea fuera del for o while.
//Archivo: Break.java

public class Break{
 
 public static void main(String args[]){
  
  int contador;
  
  for(contador=1; contador<=5; contador++){
   
   if(contador==3)
    break;
   
   //esta linea no se ejecutara despues
   //de la tercera iteracion:
   System.out.println("Contando iteracion: "+contador);
  }
  
  System.out.println("Ha salido del for");
 }
}
En este programa haremos uso de un for, declaramos un contador en la linea 7 y en la linea 9 nuestro for, inicializando el contador en 1, estableciendo que para que se cicle contador debe ser menor o igual a 5 (osea que tendrá 5 iteraciones), y dentro del cuerpo del for en la linea 11 establecemos un if con la condición de que cuando contador valga 3 se ejecute la instrucción break (osea que se saldrá del for). Y entonce se brincara hasta la linea 19 donde se imprime un mensaje en consola que dirá: "Ha salido del for".

Al momento de que el programa ejecute el for, entrará, después pasara al condición y como contador vale 1 no se cumple la condición y no se ejecuta el break, y se imprime en consola "Contando iteracion: 1". Para la segunda vuelta se cumple la condición del for y contador vale 2, tampoco se cumple la condición del if y se ejecuta otra impresión en pantalla: "Contando iteracion: 2". Pero para la tercera vuelta (iteracion) pasa el for y contador valdrá 3, por tanto se cumple la condición del if y se ejecuta el break y nos saca del ciclo y ejecuta la primera linea después del cuerpo del for, osea que ejecutara el mensaje en pantalla: "Ha salido del for".

continue

La instrucción continue se usa de igual modo que el break, pero tiene diferente función, el break te saca directamente del ciclo y la instrucción continue solo se salta la iteracion en donde se ejecuta esta instrucción. Por tanto el ciclo se va a ejecutara y hará sus iteraciones y en el if al momento de cumplirse la condición y ejecutarse la instrucción continue se va a saltar solo esa iteracion donde la condición se cumplió y sin salirse del for seguirá con las iteraciones que faltan, hasta que la condición del ciclo se cumpla se terminara el for.
//Archivo: Continue.java

public class Continue{
 
 public static void main(String args[]){
  
  int contador;
  
  for(contador=1; contador<=5; contador++){
   
   if(contador==3)
    continue;
   
   System.out.println("Contando iteracion: "+contador);
  }
  
  System.out.println("Ha salido del for");
 }
}
En este ejemplo tambien se declara un contador en la linea 7 y en la 9 el for, inicializandolo tambien en 1 y con la misma condición de que contador<=5 (tendrá 5 iteraciones), en la linea 11 establecemos el if con la condición de que cuando contador valga 3 se ejecute la instrucción continue. En la linea 14 la impresión en pantalla de las iteraciones de nuestro for. Y en la linea 17 un mensaje que diga: "Ha salido del for".

Al momento de que el programa ejecute el for, entrará, después pasara al condición y como contador vale 1 no se cumple la condición y no se ejecuta el continue, y se imprime en consola "Contando iteracion: 1". Para la segunda vuelta se cumple la condición del for y contador vale 2, tampoco se cumple la condición del if y se ejecuta otra impresión en pantalla: "Contando iteracion: 2". Pero para la tercera vuelta (iteracion) pasa el for y contador valdrá 3, por tanto se cumple la condición del if y se ejecuta el continue, por tanto se saltara la linea 14 y no se ejecutara esa impresión en pantalla para esta iteracion (osea que no se mostrara en pantalla el mensaje: "Contando iteracion: 3"), pero después de brincarse esa linea se sigue el for, así que regresa al for y ahora contador vale 4, al pasar por el if no se cumple la condición y ya no se ejecuta continue, así que ejecuta la impresión en consola con el mensaje: "Contando iteracion: 4". Da la quinta vuelta, entra al for, pasa por el if donde nuevamente no se cumple la condición así que se salta a mostrar el mensaje: "Contando iteracion: 5". Vuelve al inicio del for, pero ahora contador ya vale 6 por lo que no se cumple la condición del for y se sale del for y va a ejecutar la linea 17 y ahí termina nuestro programa.
Loading...