Curso de programación

Aprendiendo a usar do while con Repetir de PSeInt

Capítulo 27: El bucle do while en programación

Llegamos al final de los bucles en este módulo para aprender programación.

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

La palabra "do" se traduce al español como "hacer". Entonces, "do while" se traduce al español como "haz mientras".

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

Esta es la sintaxis del bucle Repetir de PSeInt:

Algoritmo bucle_repetir
	Definir variable
	variable <- valor
	Repetir
		secuencia_de_acciones
	Hasta Que expresion_logica
	paso (incremento/decremento)
FinAlgoritmo

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.

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 diagrama

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 un 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.

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.

Anterior Siguiente

Comentarios

Si te quedan dudas sobre el temario, sobre Programación, PseInt, Python o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.