Elm - Tomada de Decisão
As estruturas de tomada de decisão requerem que o programador especifique uma ou mais condições a serem avaliadas ou testadas pelo programa, juntamente com uma instrução ou instruções a serem executadas se a condição for determinada como verdadeira e, opcionalmente, outras instruções a serem executadas se o condição é determinada como falsa.
Abaixo é mostrada a forma geral de uma estrutura típica de tomada de decisão encontrada na maioria das linguagens de programação

Uma construção de tomada de decisão avalia uma condição antes que as instruções sejam executadas. Construções de tomada de decisão em Elm são classificadas como segue -
Sr. Não. | Declaração | Descrição |
---|---|---|
1 | declaração if ... then ... else | A instrução if consiste em uma expressão Booleana seguida por then queéexecutada se a expressão retornar verdadeiro e outra que será executada se a expressão retornar falso |
2 | declaração if aninhada | Você pode usar um if ... then ... else dentro de outro if. |
3 | declaração de caso | Testa o valor de uma variável em relação a uma lista de valores. |
if ... then ... else Declaração
o if…thenconstruct avalia uma condição antes que um bloco de código seja executado. Se a expressão booleana for avaliada como verdadeira, o bloco de código dentro da instrução then será executado. Se a expressão booleana for avaliada como falsa, o bloco de código dentro da instrução else será executado.
Ao contrário de outras linguagens de programação, no Elm devemos fornecer o ramo else. Caso contrário, Elm lançará um erro.
Sintaxe
if boolean_expression then statement1_ifTrue else statement2_ifFalse
Ilustração
Experimente o seguinte exemplo no terminal REPL.
> if 10>5 then "10 is bigger" else "10 is small"
"10 is bigger" : String
Aninhado se
A instrução if aninhada é útil para testar várias condições. A sintaxe de uma instrução if aninhada é fornecida abaixo -
if boolean_expression1 then statement1_ifTrue else if boolean_expression2 then statement2_ifTrue else statement3_ifFalse
Ilustração
Experimente o seguinte exemplo no Elm REPL -
> score=80
80 : number
> if score>=80 then "Outstanding" else if score > = 70 then "good" else "average"
"Outstanding" : String
Declaração de caso
A instrução case pode ser usada para simplificar a instrução if then else. A sintaxe de uma instrução case é fornecida a seguir -
case variable_name of
constant1 -> Return_some_value
constant2 -> Return_some_value
_ -> Return_some_value if none of the above values match
A instrução case verifica se o valor de uma variável corresponde a um conjunto predefinido de constantes e retorna o valor correspondente. Observe que o valor retornado por cada caso deve ser do mesmo tipo. Se o valor das variáveis não corresponder a nenhuma das constantes fornecidas, o controle é passado para * default * (denotado por // _) e o valor correspondente é retornado.
Ilustração
Experimente o seguinte exemplo no Elm REPL -
> n = 10
10 : number
> case n of \
| 0 -> "n is Zero" \
| _ -> "n is not Zero"
"n is not Zero" : String
O trecho de código acima verifica se o valor de n é zero. O controle é passado para o padrão, que retorna a string “n não é zero”.