Bucles WHILE y DO-WHILE (y String Interpolation)

Con los bucles WHILE y DO-WHILE podemos hacer que una determinada región de código se repita mientras cierta expresión booleana siga siendo verdadera, como en muchos otros lenguajes de programación. Indirectamente, os cuento cómo funciona el mecanismo de interpolación de Strings para poder meter variables dentro de tus strings sin volverte loco concatenando cosas.

Este curso ha sido marcado como anticuado y no está siendo revisado de forma activa. Es posible que la información pueda estar desactualizada o que los enlaces se hayan roto.

Cuando trabajamos con Scala, una de las herramientas fundamentales para controlar la repetición de código son los bucles. En particular, los bucles while y do-while nos permiten ejecutar una sección de código mientras se cumpla una condición determinada, y entender su funcionamiento es clave para manejar flujos repetitivos de manera efectiva.

El bucle while evalúa su condición antes de cada iteración, lo que significa que puede que el bloque de código dentro del bucle no se ejecute ni una sola vez si la condición inicial no se cumple. Por ejemplo, si declaramos una variable mutable k con valor inicial cero, podemos hacer que el bucle imprima el valor de k mientras sea menor que 20, incrementando k en cada paso:

var k = 0
while (k < 20) {
  println(s"k vale $k")
  k = k + 1
}

Aquí, la variable k es mutable porque necesitamos modificar su valor en cada iteración. Aunque en programación funcional se suele evitar la mutabilidad, en este caso es necesaria para que el bucle avance. Además, hemos aprovechado la interpolación de cadenas de Scala para simplificar la impresión. En lugar de concatenar cadenas y variables con el operador +, simplemente ponemos una s antes de la cadena y usamos $k para insertar el valor de la variable directamente. Esto hace que el código sea más legible y limpio.

Si queremos incluir una expresión más compleja dentro de la cadena interpolada, podemos usar llaves para delimitarla, por ejemplo:

println(s"k más uno es ${k + 1}")

Esto evalúa la expresión k + 1 y la inserta en la cadena.

Por otro lado, el bucle do-while funciona de manera diferente: primero ejecuta el bloque de código y luego evalúa la condición. Esto garantiza que el código dentro del bucle se ejecute al menos una vez, independientemente de si la condición es verdadera o falsa desde el principio. Un ejemplo sería:

var k = 0
do {
  println(s"k vale $k")
  k = k + 1
} while (k < 20)

En este caso, el bloque se ejecuta y luego se verifica si k sigue siendo menor que 20 para decidir si repetir la ejecución.

Es importante destacar que, aunque estos bucles son muy útiles, en Scala y otros lenguajes funcionales existen formas más idiomáticas y seguras de manejar iteraciones, como el uso de rangos y el bucle for, que permiten evitar la mutabilidad y escribir código más declarativo. Pero para entender los fundamentos, dominar while y do-while es un buen punto de partida.

Además, la interpolación de cadenas es una característica que mejora mucho la legibilidad del código, evitando concatenaciones engorrosas y facilitando la inserción de variables y expresiones dentro de textos. Esto es algo que Scala ofrece y que no está presente en todos los lenguajes, por lo que es una ventaja que debemos aprovechar.

En resumen, el bucle while evalúa la condición antes de ejecutar el código, pudiendo no ejecutarse nunca si la condición es falsa desde el inicio, mientras que el do-while ejecuta el código al menos una vez y luego evalúa la condición para continuar o detenerse. Ambos pueden combinarse con la interpolación de cadenas para imprimir valores de manera sencilla y clara. Más adelante, exploraremos cómo el bucle for en Scala nos permite manejar iteraciones de forma más funcional y elegante.

Lista de reproducción
  1. 1
    Introducción a Scala
    6 minutos
  2. 2
    Instalar Scala
    6 minutos
  3. 3
    Primeros pasos con el intérprete
    5 minutos
  4. 4
    Variables con val y var
    7 minutos
  5. 5
    Declarando funciones
    7 minutos
  6. 6
    Inciso sobre Units e iguales
    5 minutos
  7. 7
    Presentación de los objetos singleton
    6 minutos
  8. 8
    Editando y compilando archivos
    8 minutos
  9. 9
    Descargar e instalar Scala IDE
    6 minutos
  10. 10
    Proyectos y worksheets en Scala IDE
    7 minutos
  11. 11
    El condicional IF en Scala
    8 minutos
  12. 12
    Un caso sencillo de MATCH
    6 minutos
  13. 13
    Bucles WHILE y DO-WHILE (y String Interpolation)
    7 minutos
  14. 14
    El sistema de tipos
    7 minutos
  15. 15
    Colecciones
    9 minutos
  16. 16
    Funciones básicas de una colección
    8 minutos
  17. 17
    El map (es sensacional)
    8 minutos
  18. 18
    Flatten y flatMap
    9 minutos
  19. 19
    Sets, parte 1 de 3: Set
    8 minutos
  20. 20
    Sets, parte 2 de 3: Sets mutables
    4 minutos
  21. 21
    Sets, parte 3 de 3: SortedSet
    6 minutos
  22. 22
    Mapas (parte 1 de 2): Creando mapas
    9 minutos
  23. 23
    Mapas (parte 2 de 2): Operaciones
    8 minutos
  24. 24
    foreach y for
    8 minutos