Contenido del capítulo

En esta ocasión, te voy a mostrar el segundo tipo de bucle. El bucle Repetir de PSeInt, que es equivalente al bucle do while en programación.

Duración estimada de todo el contenido:
Duración del vídeo:
No hay ejercicios en este capítulo. Contiene 1 vídeo.
Tabla de contenidos
Logo

    Introducción al tipo de bucle do while

    El bucle do while
    El bucle do while

    Llegamos al último tipo de de bucle, el bucle do while.

    El tipo de bucle que nos queda por ver en PSeInt es Repetir, que equivale al bucle do while en programación general.

    La palabra do se traduce al español como hacer.

    Entonces, do while se traduce al español como haz mientras.

    Espacio publicitario

    El bucle do while es casi idéntico al bucle while (Mientras). La única diferencia reside en que este tipo de bucle, se va a ejecutar siempre mínimo una vez, aunque la expresión no se cumpla ni una sola.

    Este tipo de bucle es importante cuando queremos estar seguros de que el código del bucle se vaya a ejecutar al menos en una ocasión, independientemente de las circunstancias.

    Para añadir esta estructura a tu algoritmo, puedes pulsar este botón en la sección de comandos de PSeInt:

    Bucle Repetir de PSeInt

    Sintaxis del bucle Repetir de PSeInt

    En la siguiente página, podrás ver la sintaxis de este tipo de bucle.

    Definir variable
    variable <- valor
    Repetir
        secuencia_de_acciones
        Paso (incremento/decremento)
    Hasta Que expresion_logica

    Definimos una variable iteradora fuera del bucle, se indica un bloque de código a repetir y después del bloque, la condición de salida. Así, nos aseguramos de que la primera vez que entra en el bucle, lo haga sin condición alguna, ejecute las instrucciones del bloque y luego, compruebe si la cumple. Si no la cumple, ya no se ejecuta más. Si la cumple, se ejecuta las veces que haga falta hasta terminar con la condición de salida.

    También tenemos el Paso (incremento/decremento) para hacer que el valor del iterador vaya cambiando.

    Ejemplo de uso práctico del bucle Repetir de PSeInt

    Probemos este bucle con un ejemplo un poco más sofisticado que los anteriores. Así vamos a poder probar el cometido real de este tipo de bucle. Esta vez, en lugar de poner un iterador fijo con un valor, vamos a dejar que sea el usuario el que pueda introducirlo en la consola. Así, no sabemos cuantas veces se va a ejecutar el bucle.

    Algoritmo bucle_repetir
    
        // Se declara y solicita el valor del iterador
        Definir i Como Entero
        Escribir "Introduzca un número del 0 al 5."
        Leer i
    
        // Bucle Repetir
        Repetir
            Escribir "El valor del bucle es: ", i
            i <- i + 1
        Hasta Que i > 5
    
    FinAlgoritmo

    Primero, le solicito al usuario un valor para i. Le digo que del 0 al 5 para que mi bucle funcione correctamente, ya que con otros valores más altos que 5, no funcionaría bien por la expresión de salida.

    Con el valor del usuario, es con lo que se itera el bucle hasta que valga más de 5.

    Probando el bucle Repetir

    Probemos introduciendo el valor 2 en el iterador:

    Bucle do while

    ¿Qué pasa si el usuario no sigue mis instrucciones? En este caso, con los otros tipos de bucles, no se ejecutaría ninguna vez. Sin embargo, gracias a esta sintaxis, es capaz de ejecutarse al menos una vez, por lo que he explicado al principio.

    Salida de un bucle do while

    Diagrama de flujo del bucle Repetir

    El diagrama del bucle Repetir es un poco diferente al de los anteriores bucles. Puedes ver, como la frase que se imprime está lo primero en el camino, después llega a la expresión.

    Curiosamente, la lógica de la expresión en este tipo de bucle, está invertida. Si te fijas, si la expresión es VERDADERA (i mayor que 5), se deja de ejecutar el bucle, sin embargo, si i no es mayor que 5, evalúa como FALSO y se sigue ejecutando.

    Bucle repetir de PSeInt

    Lo que te tiene que quedar claro, es que el bucle se ejecuta "Hasta Que se cumpla la condición".

    Esta lógica te puede confundir enormemente si sabes poco de programación, ya que en todos los lenguajes de programación que conozco, la expresión de salida es al revés. Sigue siendo Mientras y no Hasta Que. Por lo tanto, evalúa FALSO para salir del bucle, y no VERDADERO.

    Mira este código de JavaScript. Es un bucle do while. El equivalente al Repetir de PSeInt. Si imprimimos en la consola los valores booleanos de la expresión en cada ejecución, vemos que van a la inversa. Se termina cuando la expresión nos da false (FALSO).

    let i = 1
    
    do {
        i++;
        console.log("La condición es: ", i <= 5, "Valor de i: ", i);} while (i <= 5);
    La condición es: true Valor de i: 2
    La condición es: true Valor de i: 3
    La condición es: true Valor de i: 4
    La condición es: true Valor de i: 5
    La condición es: false Valor de i: 6

    Curiosamente, te he puesto este ejemplo en código JavaScript y no en Python (como suelo hacer con muchos ejemplos), porque este tipo de bucle no existe en Python (al menos en el momento de escribir esto). Realmente no existe, porque podemos emular el mismo comportamiento, sin tener un elemento dedicado a ello, así que las necesidades en este aspecto, están cubiertas.

    En el siguiente curso (Python básico) te enseñaré como funciona la emulación de este tipo de bucle.



    Espacio publicitario



    Espacio publicitario