Espressioni condizionali: if...then...else (F#)

L'espressione if...then...else consente di eseguire diversi rami di codice e restituisce anche un valore diverso in base all'espressione booleana specificata.

if Boolean-expression then expression1 [ else expression2 ]

Note

Nella sintassi precedente l'oggetto expression1 viene eseguito quando l'espressione booleana restituisce true; in caso contrario, viene eseguito l'oggetto expression2.

A differenza degli altri linguaggi, il costrutto if...then...else è un'espressione, non un'istruzione. Ciò significa che produce un valore che corrisponde al valore dell'ultima espressione nel ramo eseguito. I tipi di valori prodotti in ogni ramo devono corrispondere. Se non è presente un ramo else esplicito, il tipo è unit. Se, pertanto, il tipo del ramo then è qualsiasi tipo diverso da unit, deve essere presente un ramo else con lo stesso tipo restituito. Quando si concatenano insieme le espressioni if...then...else, è possibile utilizzare la parola chiave elif anziché elseif, in quanto sono equivalenti.

Esempio

Nell'esempio seguente viene illustrato come utilizzare l'espressione if...then...else.

let test x y =
  if x = y then "equals"
  elif x < y then "is less than"
  else "is greater than"

printfn "%d %s %d." 10 (test 10 20) 20

printfn "What is your name? "
let nameString = System.Console.ReadLine()

printfn "What is your age? "
let ageString = System.Console.ReadLine()
let age = System.Int32.Parse(ageString)

if age < 10
then printfn "You are only %d years old and already learning F#? Wow!" age
      

Vedere anche

Altre risorse

Riferimenti per il linguaggio F#