Curso

Como muitas outras aplicações e linguagens de programação, o Scala também possui declarações condicionais if-else para tomada de decisão. O bloco condicional if é executado se a condição for verdadeira; caso contrário, o bloco else é executado (somente se houver else).
Geralmente, o else não tem condição; ele roda apenas quando a condição do if é falsa. Em resumo, instruções if-else trabalham com expressões booleanas baseadas em True-False.
Existem vários tipos de instruções if-else:
- Instrução if,
- Instrução if-else,
- If-else aninhado,
- If-else-if-else.
Antes de começar a ver os diferentes tipos de if-else, vamos configurar rapidamente o ambiente Scala para usuários de Mac seguindo os passos abaixo.
Observação: verifique se você tem Java instalado; se não tiver, siga as instruções aqui.
- \$ brew update
- \$ brew install scala
- \$ brew install sbt
- \$ echo '-J-XX:+CMSClassUnloadingEnabled' >>
/usr/local/etc/sbtopts
- \$ echo '-J-Xmx2G' >> /usr/local/etc/sbtopts
Depois desses passos, teste rapidamente a instalação digitando scala no terminal; você deve ver uma saída como a mostrada abaixo.

Observação: neste tutorial, você vai escrever o código no editor vim e executá-lo pelo terminal.
Instrução if em Scala
A instrução if contém uma expressão de natureza boolean (verdadeira ou falsa). Se a expressão for verdadeira, o bloco de código dentro do if é executado; se for falsa, a execução segue para a primeira linha depois do if.
if(boolean expression)
{
execute if boolean expression holds true
}
Primeiro, você vai definir um object ou uma class chamada scala_if. Dentro desse objeto, configure a função main e escreva o corpo principal do código. Crie uma variável inteira x com valor 20. Por fim, vem o coração do código: o bloco if com a condição x<=20 e, como x vale 20, o bloco dentro do if será executado.
Vamos salvar o código abaixo com o nome if.scala.

Para rodar o código acima, basta digitar scala if.scala e você verá uma saída como a mostrada abaixo.

Instrução if-else em Scala
Assim como a instrução if, a instrução if-else também possui uma expressão boolean (verdadeira ou falsa). Se a condição do if for verdadeira, executa-se o bloco dentro do if; se for falsa, executa-se o bloco dentro do else.
if(boolean expression)
{
execute if boolean expression holds true
}
else
{
execute block if boolean expression (if statement) holds false
}
O código a seguir executará o bloco else, pois a variável x tem um valor maior que 20; portanto, o bloco de código dentro do else será executado.
Vamos salvar o código abaixo com o nome if-else.scala.

Para rodar o código acima, basta digitar scala if-else.scala e você verá uma saída como a mostrada abaixo.

If-else aninhado em Scala
Assim como normalmente você tem um if seguido de um else, o if-else aninhado segue a mesma lógica. No aninhamento, você pode usar um if ou else-if dentro de outro if ou else-if.
Na próxima seção, você verá as instruções else-if.
if(boolean expression 1)
{
execute block 1 if boolean expression 1 holds true**
if(boolean expression 2)
{
execute block 2 if boolean expression 1 and 2 holds true
}
}
O código a seguir usa instruções nested-if para comparar quatro variáveis inteiras, chamadas $v$, $x$, $y$ e $z$ e, por fim, se todas as condições forem verdadeiras, imprime a saída no terminal.
Vamos salvar o código abaixo com o nome nested-if-else.scala.


Instrução else-if em Scala
A instrução else-if é mais flexível em comparação com o if-else. Diferente do if-else, em que um else é seguido por um if, o else-if é uma única instrução. Ele permite testar várias condições.
No entanto, há algumas regras importantes ao usar else-if:
-
Um
else-ifdeve vir apenas depois de umif. Umifpode ter zero ou maiselse-if's. -
Da mesma forma, um
elsedeve vir apenas depois de instruçõesifeelse-if. Umifpode ter zero ou umelse. -
Quando um
else-ifé satisfeito, os demaiselse-if'se oelsesão ignorados.
if(boolean expression 1)
{
execute block 1 if boolean expression 1 holds true
}
else-if(boolean expression 2)
{
execute block 2 if boolean expression 2 holds true
}
else
{
execute this block if all of the above statements holds false
}
Conclusão
Parabéns por concluir o tutorial.
Este conteúdo é um ótimo ponto de partida para quem quer aprender as declarações condicionais IF ELSE em Scala.
Um exercício rápido: escreva um pequeno trecho de código usando else-if em Scala e veja na prática como essas instruções se diferenciam das outras.
Referências:
Fique à vontade para deixar suas dúvidas sobre este tutorial nos comentários abaixo.