¿Ya dominas lo básico? Un curso estructurado de Scala es la vía rápida para dar el salto.
Ver cursos de Scala en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (println)
- 03Variables (val y var)
- 04Anotaciones de tipo y tipos básicos
- 05Condicionales (la expresión if)
- 06Repetir (la expresión for)
- 07Escribir tu propia función
- 08Repetir (el bucle while)
- 09Trabajar con listas (List)
- 10Trabajar con diccionarios (Map)
- 11Clases (orientación a objetos)
- 12case class (clases para datos)
- 13Herencia y traits
- 14Pattern matching (la expresión match)
- 15El tipo Option (seguridad frente a null)
- 16Funciones de orden superior: map y filter
- 17object (objetos únicos)
- 18Textos e interpolación de cadenas
- 19for comprehensions (construir colecciones con yield)
- 20[Proyecto] Construye un mini sistema de inventario
Repetir (el bucle while)
En esta lección repetirás un bloque mientras se cumpla una condición.
while (condición) { ... } comprueba la condición antes de cada vuelta. Como la variable del contador cambia, tiene que declararse con var y no con val.
El código de ejemplo cuenta del 1 al 3, y la línea count += 1 es la que hace que el bucle termine alguna vez.
Olvidar esa línea deja el programa dando vueltas para siempre. Pero en Scala hay algo más interesante que señalar: el hecho de que while obligue a usar var es, en la práctica, un aviso. En código Scala idiomático los while son raros justamente por eso, y cuando aparece uno suele ser señal de que hay una forma mejor de expresar lo mismo.
Esa forma mejor casi siempre existe: recorrer con for, transformar con map, acumular con foldLeft o generar con Iterator. Todas evitan el estado mutable, que es exactamente lo que hace que un programa sea seguro de ejecutar en paralelo.
🧪 Este sitio no puede compilar ni ejecutar Scala directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
