Programación en Java/Sentencia do-while

De Wikilibros, la colección de libros de texto de contenido libre.
← Sentencia while Sentencia do-while Sentencia for →


La sentencia de

iteración do-while es de tipo pos prueba. Primero realiza las acciones luego pregunta. La sintaxis es la siguiente:

 do sentencia while ( condición );

Observamos que es como un while pero al revés. Primeramente se ejecuta la sentencia y luego evalúa la condición. Si la expresión de la condición es verdadera vuelve a dar un ciclo. De lo contrario, termina. Esto nos garantiza que la sentencia se ejecute al menos una vez.

 do System.out.println("Lo veras una vez");
 while ( false );

Resulta útil para los casos en donde tendremos que realizar ciertas acciones antes de verificar una condición.

Realicemos un programa que cuente la cantidad de dígitos que posee un número. Para ello tendremos que dividir por diez el número que nos han dado, hasta que el resultado se vuelva cero. Entonces recurrimos al while para realice los ciclos necesarios.

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++;
      }
      System.out.println(dígitos);
   }
}

¿Qué ocurre si el número que nos dan es el cero? El resultado nos dará cero. Obviamente es erróneo, debería devolver un dígito. Pero no entra en el ciclo debido a que de entrada no satisface la condición. Podríamos implementar una solución "ad hoc".

 número /=10;
 dígitos++;
 while ( número > 0 ) {
       número /=10;
       dígitos++;
 }


public class CuentaDigitos{
   public static void main(String args[]){
      int número = 4557888;
      int dígitos = 0;
      do {
         número /=10;
         dígitos++;
      }
      while ( número > 0 );
      System.out.println(dígitos);
   }
}