El condicional IF en Scala

El condicional IF de Scala es como el condicional IF de cualquier otro lenguaje. Bueno, en realidad este tiene un par de sorpresas. Por ejemplo, al ser una expresión, ¿sabías que puedes meterlo en cuaqluier parte donde se acepte uuna expresión? Por ejemplo, como parámetro en un println.

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.

El operador if en Scala es una herramienta fundamental para controlar el flujo de nuestro código mediante condicionales, y aunque su uso básico es similar al de otros lenguajes, Scala nos ofrece algunas particularidades interesantes que vale la pena conocer.

Para empezar, el uso más sencillo del if consiste en evaluar una condición booleana y ejecutar un bloque de código solo si esa condición es verdadera. Por ejemplo, si tenemos una variable n con valor 5, podemos escribir:

val n = 5
if (n == 5) {
  println("n vale 5")
}

En este caso, como la condición n == 5 es verdadera, se ejecutará el println y veremos la salida correspondiente. Si cambiamos el valor de n a otro número, como 7, el bloque dentro del if no se ejecutará y no habrá salida.

Cuando queremos manejar la situación en la que la condición no se cumple, podemos usar la cláusula else. Esto nos permite definir un bloque alternativo que se ejecuta cuando la condición es falsa:

val n = 7
if (n == 5) {
  println("n vale 5")
} else {
  println("n no vale 5")
}

Aquí, dado que n no es 5, se ejecutará el bloque dentro del else y veremos el mensaje correspondiente.

Scala también permite anidar condicionales, es decir, colocar un if dentro de otro if o dentro de un else. Por ejemplo:

val n = 6
if (n == 5) {
  println("n vale 5")
} else {
  if (n == 6) {
    println("n vale 6")
  } else {
    println("n no vale ni 5 ni 6")
  }
}

Aunque esta estructura funciona, puede volverse difícil de leer si tenemos muchas condiciones. Para evitar esto, Scala ofrece la construcción else if, que nos permite encadenar múltiples condiciones de forma más clara y plana:

val n = 7
if (n == 5) {
  println("n vale 5")
} else if (n == 6) {
  println("n vale 6")
} else if (n == 7) {
  println("n vale 7")
} else {
  println("n no vale ni 5, ni 6, ni 7")
}

En este ejemplo, se evalúan las condiciones en orden y se ejecuta el bloque correspondiente a la primera que se cumple. Si ninguna se cumple, se ejecuta el bloque final del else.

Una característica muy interesante de Scala es que el if es una expresión, no solo una estructura de control. Esto significa que puede devolver un valor y usarse dentro de otras expresiones, como argumentos de funciones o asignaciones. Por ejemplo:

val k = 10
println(if (k == 10) "k vale 10" else "k no vale 10")

Aquí, el if devuelve una cadena que se pasa directamente a println. Si cambiamos el valor de k a 20, la expresión devolverá la cadena alternativa.

Podemos incluso definir funciones que devuelvan valores usando un if como expresión:

def mensaje(k: Int): String = 
  if (k == 10) "k vale 10" else "k no vale 10"

println(mensaje(10))  // Imprime: k vale 10
println(mensaje(20))  // Imprime: k no vale 10

En este caso, la función mensaje evalúa la condición y devuelve la cadena correspondiente sin necesidad de usar llaves ni múltiples líneas.

Esta capacidad de usar if como expresión nos permite escribir código más compacto y claro, integrando condicionales directamente en expresiones más complejas o en asignaciones.

Así, el operador if en Scala no solo cumple su función básica de controlar el flujo, sino que también nos ofrece flexibilidad para escribir código más expresivo y conciso, adaptándose a diferentes necesidades y estilos de programación.

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