Programación en Java/Sentencia break

De Wikilibros, la colección de libros de texto de contenido libre.
← Sentencia for Sentencia break Sentencia continue →


La sentencia de 'break' es de tipo de control de bucles. Dentro de la iteracion en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la iteracion de dicho bucle.

 for(int j = 0; j<10; j++){
    sentencia 1;
    sentencia 2;
    sentencia 3;
    break;
 };

Este bucle debería ejecutarse 10 veces, desde j = 0 hasta j = 9, sin embargo la utilización de la sentencia break, rompe la iteración del bucle, de tal manera que tras la primera ejecución el bucle acaba habiéndose ejecutado una sola vez.


Resulta útil la utilización de condiciones para la ruptura del bucle, de tal manera que un código como el anterior indicado no sirve para nada. Recurrimos para ejemplificarlo al ejemplo anterior de contar dígitos). Pero en este caso queremos que cuente los dígitos de un número pero solamente hasta llegar a 5 dígitos, en caso de que tenga más dejaremos de contarlos:

public class CuentaDigitos{
   public static void main(String args[]){
      int número = 4557888;
      int dígitos = 0;
      while ( número > 0 ) {
          número /=10;
          dígitos++;
          if (dígitos ==5) break;
      }
      if (dígitos ==5) System.out.println("El número tiene 5 o más dígitos");
   }
}

Este programa cuenta los dígitos de un número y en caso de que dicho número tenga 5 o más dígitos nos muestra por consola el mensaje "el número tiene 5 o más dígitos". Véase la línea "if (dígitos ==5) break;" cuya presencia hace que en caso de que el número haya llegado a los 5 dígitos se rompa la iteración del bucle.

No obstante, este resultado puede conseguirse de igual forma con el siguiente programa:

public class CuentaDigitos{
   public static void main(String args[]){
      int número = 4557888;
      int dígitos = 0;
      while ( número > 0  && dígitos < 5) {
          número /=10;
          dígitos++;
      }
      if (dígitos ==5) System.out.println("El número tiene 5 o más dígitos");
   }
}

donde, como puede verse, no hace falta hacer uso de break y además queda perfectamente definida la condición de salida del bucle en un solo lugar, junto a la palabra while. Debe tenerse en cuenta que el uso y abuso de break puede dar lugar a código engorroso, difícil de mantener.