Etiquetas para identificar Ciclos en Java

Es común que durante la ejecución de un programa, te veas en la necesidad de interrumpir el curso normal de un ciclo repetitivo como un for, un while o un do-while. Para hacerlo cuentas en java con las sentencias break y continue.

Normalmente cuando las utilizas estas interrumpiendo el normal recorrido del ciclo mas interno al cual se ingreso previamente antes de encontrarse con algunas de las sentencias break o continue.

Sin embargo Java brinda la posibilidad de etiquetar a cualquiera de las sentencias for, while, do-while e incluso switch para que de este modo pueda ser interrumpida directamente desde cualquier ciclo interno sin importar que tan profunda se encuentre la llamada a break o continue.

Acá te dejo un ejemplo para que lo pruebes.


import java.util.Scanner;

class Ciclo {
 public static void main(String[] args) {
  Scanner in = new Scanner(System.in);

  ciclo1: while (true) {
   System.out.println("Estoy en Ciclo1");

   ciclo2: while (true) {
    System.out.println("Estoy en Ciclo2");

    ciclo3: while (true) {
     System.out.println("Estoy en Ciclo3");

     cicloLectura: while (true) {
      System.out.println("Estoy en CicloLectura");
      System.out.print("Dame un numero: ");

      //Leemos de la entrada estandar
      int num = in.nextInt();

      switch (num) {
       case 1:
        break ciclo1;
       case 2:
        break ciclo2;
       case 3:
        break ciclo3;
       case 4:
        break cicloLectura;
       default:
        System.out.println("Solo numeros del 1 al 4");
        break;
      }
     }
     System.out.println("Sali de CicloLectura");
    }
    System.out.println("Sali de Ciclo3");
   }
   System.out.println("Sali de Ciclo2");
  }
  System.out.println("Sali de Ciclo1");
  System.out.println("Fin");
 }
}

Para entender un poco mejor lo que realiza este código podemos ver la siguiente imagen:

Labels en Java
Ejemplo de Labels en Java

En esta imagen se ve como las sentencias break con etiquetas interrumpen el los ciclos while mas superiores y no los mas profundos cercanos a ellas. Mientras que el break sin etiqueta no posee esa cualidad.

Fuente: http://download.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

Etiquetas para identificar Ciclos en Java

Un comentario en “Etiquetas para identificar Ciclos en Java

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s