jueves, 29 de diciembre de 2011

Etiquetas en Java

Para los que conocen algo de lenguaje ensamblador, les será familiar encontrar etiquetas en el lenguaje Java, esta forma de controlar la ejecución puede resultar útil en la optimización de ciertos códigos, y su utilización solo se justifica cuando se realiza justo antes de un ciclo que a su vez tenga otro ciclo y/o un switch anidado.

Las etiquetas en java trabajan con las palabras reservadas "break" y "continue".
Teniendo en cuenta que se deben utilizar en ciclos(for, while o do-while ), un ejemplo de su utilización podría ser el improvisado siguiente código en donde se quiere imprimir por separado cada palabra de una frase dada:


String  frase = "Empezando con Java desde cero";
int i=-1; 
 
otraPalabra: //etiqueta


  // aqui no es conveniente colocar código.


while(true)
{
  
  i++; 
  
  System.out.print("\n palabra: ");
  
     for( int a = i ; a < frase.length() ; a++ )
     {
      
        char caracter=frase.charAt(a); 
   
        if(caracter == ' ')
        {
            i = a; 
      
            continue otraPalabra;  
        }
     
        System.out.print(caracter);
   
     }
     
  break otraPalabra;
     
} 




En el código anterior:

La instrucción "otraPalabra:" que se encuentra antes del while, es la etiqueta e indica un punto especifico en la ejecución.

La instrucción "continue otraPalabra;" que se encuentra dentro del if, provocará que la ejecución continué en la etiqueta "otraPalabra", es decir por fuera del ciclo while y ademas que vuelva a entrar a dicho while.

La instrucción "break otraPalabra;" provocará que la ejecución continué en la etiqueta "otraPalabra", pero sin entrar de nuevo al while, lo que finalmente evita un ciclo infinito así como lo huviera evitado un simple "break;", el cual no se utilizo para poder ver el comportamiento de las etiquetas con el break.

El código anterior imprimirá:

palabra: Empezando
palabra: con
palabra: Java
palabra: desde
palabra: cero


No hay comentarios:

Publicar un comentario