Bucle repetir

Summary

El bucle repetir comprueba la condición de finalización al final del cuerpo del bucle, y si ésta es cierta continua con el resto del programa, a veces esto resulta más adecuado. La instrucción se ejecutará al menos una vez.

Diagrama de bucle Do While

Sintaxis

editar

La sintaxis en pseudocódigo es la siguiente:

 
 
 
El cuerpo del bucle es el fragmento de programa que será repetido en cada iteración.
La condición es una variable o una función reducible a valor booleano.

En lenguajes de programación

editar

En la mayoría de los lenguajes de programación seria:

REPEAT
   …
   …

UNTIL (condición)

Esta estructura de control siempre permite la ejecución del cuerpo del bucle cuando menos una vez, y lo finaliza cuando la condición es cierta.

Ejemplos

editar
Una situación típica en la que resulta cómoda el empleo de esta sentencia es la que se produce cuando al finalizar cada iteración se pregunta al operador si desea continuar con otra nueva. En estos casos, el programa siempre realiza la primera iteración y según la condición de salida la repite. Otro caso también típico son los filtros de entrada de datos, donde se comprueba si el valor de la entrada esta en un rango de valores.
Admite un número del 3 al 7, si no pregunta de nuevo
 REPEAT
   WriteString(“Escribe el numero”)
   ReadInt(numero);
 UNTIL (numero >= 3) AND (numero <= 7)

Reemplazable en casi todos los casos

editar

Dentro de la programación estructurada, el bucle repetir puede ser sustituido por un bucle mientras, del siguiente modo:

 Repetir
    (Cuerpo del bucle)
 Hasta que (condición)

Puede escribirse

 (Cuerpo del bucle)
 Mientras NO(condición)
    (Cuerpo del bucle)
 fmientras

Estos dos fragmentos de código son equivalentes, porque ambos presentan el mismo resultado en la mayoría de los casos. De todos modos, el bucle repetir es útil cuando se desean realizar las acciones que están dentro al menos en una ocasión. Algunos lenguajes prescinden de esta estructura, por ejemplo Python.

Véase también

editar
  •   Datos: Q11680350