Curso

Como en muchas otras aplicaciones y lenguajes de programación, Scala también cuenta con sentencias condicionales if-else para la toma de decisiones. El bloque condicional if se ejecuta si la condición es verdadera; en caso contrario, se ejecuta el bloque condicional else (solo si hay una sentencia else).
Generalmente, la sentencia else no tiene condición; se ejecuta únicamente cuando la condición del if es falsa. En resumen, las sentencias if-else trabajan con expresiones booleanas basadas en True-False.
Existen varios tipos de sentencias if-else:
- Sentencia if,
- Sentencia if-else,
- Sentencia if-else anidada,
- Sentencia if-else-if-else.
Antes de empezar con los distintos tipos de if-else, vamos a configurar rápidamente el entorno de Scala en macOS siguiendo estos pasos.
Nota: asegúrate de tener Java instalado; si no es así, sigue las instrucciones que encontrarás aquí.
- \$ brew update
- \$ brew install scala
- \$ brew install sbt
- \$ echo '-J-XX:+CMSClassUnloadingEnabled' >>
/usr/local/etc/sbtopts
- \$ echo '-J-Xmx2G' >> /usr/local/etc/sbtopts
Cuando termines, prueba rápidamente la instalación escribiendo scala en la terminal; deberías ver una salida como la siguiente.

Nota: en este tutorial escribirás el código en el editor vim y lo ejecutarás desde la terminal.
Sentencia if en Scala
La sentencia if contiene una expresión de tipo boolean (verdadero o falso). Si la expresión es verdadera, se ejecuta el bloque de código dentro del if; si es falsa, se ejecuta la primera línea de código tras el final de la sentencia if.
if(boolean expression)
{
ejecuta si la expresión booleana es verdadera
}
Primero definirás un object o una class llamada scala_if. Dentro de ese objeto establecerás tu función main y escribirás el cuerpo principal del código. Crearás una variable entera x con valor 20. Por último, viene la clave del código: el bloque if con la condición x<=20; como x vale 20, se ejecutará el bloque dentro del if.
Guardemos el siguiente código con el nombre if.scala.

Para ejecutar el código anterior, solo tienes que escribir scala if.scala y verás una salida como la siguiente.

Sentencia if-else en Scala
Al igual que la sentencia if, la sentencia if-else contiene una expresión de tipo boolean (verdadero o falso). Si el if se cumple, se ejecuta su bloque de código; si es falso, se ejecuta el bloque de código del else.
if(boolean expression)
{
ejecuta si la expresión booleana es verdadera
}
else
{
ejecuta este bloque si la expresión booleana (del if) es falsa
}
El siguiente código ejecutará la sentencia else porque la variable x tiene un valor mayor que 20; por tanto, se ejecutará el bloque de código dentro del else.
Guardemos el siguiente código con el nombre if-else.scala.

Para ejecutar el código anterior, escribe scala if-else.scala y verás una salida como la siguiente.

Sentencia if-else anidada en Scala
Igual que sueles tener una sentencia if seguida de un else, la sentencia if-else anidada funciona de forma similar. En una anidación puedes usar un if o else-if dentro de otro if o else-if.
En la siguiente sección veremos las sentencias else-if.
if(boolean expression 1)
{
ejecuta el bloque 1 si la expresión booleana 1 es verdadera
if(boolean expression 2)
{
ejecuta el bloque 2 si las expresiones booleanas 1 y 2 son verdaderas
}
}
El siguiente código usa sentencias nested-if para comparar cuatro variables enteras, $v$, $x$, $y$ y $z$, y, si todas las condiciones se cumplen, muestra el resultado en la terminal.
Guardemos el siguiente código con el nombre nested-if-else.scala.


Sentencia else-if en Scala
La sentencia else-if es muy potente en comparación con if-else. A diferencia de if-else, donde un else va seguido de un if, else-if es una única sentencia que te permite probar varias condiciones.
Sin embargo, hay algunas reglas a tener en cuenta al usar else-if:
-
Un
else-ifsolo debe aparecer después de unif; unifpuede tener cero o máselse-if. -
De forma similar, un
elsesolo debe ir después de sentenciasifyelse-if; unifpuede tener cero o unelse. -
Una vez que un
else-ifse cumple, el resto deelse-ifoelsese omiten directamente.
if(boolean expression 1)
{
ejecuta el bloque 1 si la expresión booleana 1 es verdadera
}
else-if(boolean expression 2)
{
ejecuta el bloque 2 si la expresión booleana 2 es verdadera
}
else
{
ejecuta este bloque si todas las condiciones anteriores son falsas
}
Conclusión
¡Enhorabuena por completar el tutorial!
Este tutorial es un buen punto de partida si quieres aprender a usar las sentencias condicionales IF ELSE en Scala.
Un pequeño ejercicio para ti: escribe un fragmento de código con la sentencia else-if en Scala y comprueba en la práctica en qué se diferencia de las otras variantes.
Referencias:
No dudes en dejar tus preguntas sobre este tutorial en la sección de comentarios.