Saltar la navegación

4.4.- Estructura do-while.

La segunda de las estructuras repetitivas controladas por sucesos es do-while. En este caso, la pregunta que nos planteamos es la siguiente: ¿Qué podemos hacer si lo único que sabemos es que se han de ejecutar, al menos una vez, un conjunto de instrucciones y seguir repitiéndose hasta que se cumpla una determinada condición?

La característica fundamental de este tipo de estructura repetitiva estriba en ser útil en aquellos casos en los que las instrucciones que forman el cuerpo del bucle necesitan ser ejecutadas, al menos, una vez y repetir su ejecución hasta que la condición sea verdadera. Por tanto, en esta estructura repetitiva siempre se ejecuta el cuerpo del bucle una primera vez.

Es imprescindible que en el interior del bucle se realice alguna acción que modifique la condición que controla la ejecución del mismo, en caso contrario estaríamos ante un bucle infinito.

Estructura do-while con una sentencia

do
   sentencia; //Con una sola sentencia no son necesarias las llaves

while (condición);

Estructura do-while con un bloque de sentencias

do
{

   sentencia1;

   …

   sentenciaN;

}
while (condición);

El cuerpo del bucle se ejecuta la primera vez, a continuación se evaluará la condición y, si ésta es falsa, el cuerpo el bucle volverá a repetirse. El bucle finalizará cuando la evaluación de la condición sea verdadera. En ese momento el control del flujo del programa pasará a la siguiente instrucción que exista justo detrás del bucle do-while. La condición se evaluará siempre después de una primera ejecución del cuerpo del bucle, por lo que no se dará el caso de que las instrucciones contenidas en él no lleguen a ejecutarse nunca.

En la siguiente imagen puedes ver un diagrama de flujo que representa el funcionamiento de este tipo de estructura repetitiva.

Bajo un rectángulo azul en el que se lee “Secuencia”, aparece un rombo verde con la palabra escrita “expresión”. De la parte izquierda del rombo sale una flecha hacia arriba que apunta de nuevo al rectángulo azul, a la mitad del recorrido de dicha flecha un rectángulo verde con la palabra “verdadero”. Bajo el rombo una flecha parte hacia un rectángulo rojo en el que puede leerse “falso”.
José Luís García Martínez (CC BY-NC)

Debes conocer

Accede al siguiente archivo java y podrás analizar un ejemplo de utilización del bucle do-while para la impresión por pantalla de la tabla de multiplicar del siete. Lee atentamente los comentarios incluidos en el código, pues aclaran algunas cuestiones interesantes sobre este bucle. Como podrás comprobar, el resultado de este bucle es totalmente equivalente al obtenido utilizando el bucle for y el bucle while.