Sentencia – do/while

La bucle do-while es un bucle de post-test (post-condición) donde la condición del bucle se comprueba después de cada ejecución. Esta situación se suele dar en algunas circunstancias en las que se ha de tener la seguridad de que una determinada acción se ejecutará una o varias veces, pero como resultado el bucle do-while se ejecutará al menos una vez.

Sintaxis

  • do
            sentencia
    while(condicion)
  • do{
            sentencia_1
            sentencia_2
            .
            .
            .
            sentencia_n
    }while(condicion)

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. Resulta útil para los casos en donde tendremos que realizar ciertas acciones antes de verificar una condición.

Ejemplo

       do{
                numero = numero/10;
                digitos++;
       }while(numero>0 );
           System.out.println(«Los digitos son:» + digitos);

Diferencias entre while y do-while

Una sentencia do-while es similar a una sentencia while excepto que el bloque de sentencias del bucle se ejecuta siempre, al menos una vez.

Sintaxis

Bucles anidados

Es posible anidar bucles. Los bucles anidados constan de un bucle externo con uno o más bucles internos. Cada vez que se repite el bucle externo, los bucles internos se repiten, se vuelven a evaluar las condiciones y se ejecutan todas las iteraciones o ciclos requeridos.

Ejemplo

Al ejecutar este método se obtiene el siguiente resultado:

     Para i=1:  j=1.  j=2.  j=3.  j=4.
     Para i=2:  j=1.  j=2.  j=3.  j=4. 
     Para i=3:  j=1.  j=2.  j=3.  j=4.

Este resultado demuestra que el bucle externo se ejecute tres veces, y por cada una de éstas, el bucle interno se ejecuta a su vez cuatro veces. Es así como se ejecutan los bucles anidados, por cada iteración del bucle externo, el bucle interno se ejecuta hasta finalizar todas las iteraciones.

Observe también que cada vez que finaliza la ejecución de la sentencia while interno, avanzamos a una nueva línea, incrementamos el valor de i en una unidad e iniciamos de nuevo j al valor 1. (Ver Sentencia-while)