Elm - Processo decisionale

Le strutture decisionali richiedono che il programmatore specifichi una o più condizioni che devono essere valutate o testate dal programma, insieme a una o più istruzioni da eseguire se la condizione è determinata essere vera e, facoltativamente, altre istruzioni da eseguire se condizione è determinata essere falsa.

Di seguito è mostrata la forma generale di una tipica struttura decisionale presente nella maggior parte dei linguaggi di programmazione

Un costrutto decisionale valuta una condizione prima che le istruzioni vengano eseguite. I costrutti decisionali in Elm sono classificati come segue:

Sr. No. Dichiarazione Descrizione
1 if ... then ... else dichiarazione L'istruzione if consiste in un'espressione booleana seguita da then che viene eseguita se l'espressione restituisce true e altrimenti che viene eseguita se l'espressione restituisce false
2 istruzione if annidata Puoi usarne uno se ... allora ... altrimenti dentro un altro se.
3 dichiarazione del caso Verifica il valore di una variabile rispetto a un elenco di valori.

if ... then ... else Statement

Il if…thencostrutto valuta una condizione prima che venga eseguito un blocco di codice. Se l'espressione booleana restituisce true, verrà eseguito il blocco di codice all'interno dell'istruzione then. Se l'espressione booleana restituisce false, verrà eseguito il blocco di codice all'interno dell'istruzione else.

A differenza di altri linguaggi di programmazione, in Elm dobbiamo fornire il ramo else. Altrimenti, Elm genererà un errore.

Sintassi

if boolean_expression then statement1_ifTrue else statement2_ifFalse

Illustrazione

Prova il seguente esempio nel terminale REPL.

> if 10>5 then "10 is bigger" else "10 is small"
"10 is bigger" : String

Annidato If

L'istruzione if annidata è utile per testare più condizioni. La sintassi di un'istruzione if annidata è fornita di seguito:

if boolean_expression1 then statement1_ifTrue else if boolean_expression2 then statement2_ifTrue else statement3_ifFalse

Illustrazione

Prova il seguente esempio in Elm REPL -

> score=80
80 : number
> if score>=80 then "Outstanding" else if score > = 70 then "good" else "average"
"Outstanding" : String

Dichiarazione del caso

L'istruzione case può essere utilizzata per semplificare l'istruzione if then else. La sintassi di un'istruzione case è la seguente:

case variable_name of
   constant1 -> Return_some_value
   constant2 -> Return_some_value
   _ -> Return_some_value if none of the above values match

L'istruzione case verifica se il valore di una variabile corrisponde a un insieme predefinito di costanti e restituisce il valore corrispondente. Notare che il valore restituito da ogni caso deve essere dello stesso tipo. Se il valore della variabile non corrisponde a nessuna delle costanti fornite, il controllo viene passato a * default * (indicato da // _) e viene restituito il valore corrispondente.

Illustrazione

Prova il seguente esempio in Elm REPL -

> n = 10
10 : number
> case n of \
| 0 -> "n is Zero" \
| _ -> "n is not Zero"
"n is not Zero" : String

Lo snippet di codice sopra controlla se il valore di n è zero. Il controllo viene passato al valore predefinito, che restituisce la stringa "n non è zero".