Expresiones condicionales: if...then...else

La expresión ejecuta distintas ramas de código y también se evalúa if...then...else como un valor diferente en función de la expresión booleana especificada.

Sintaxis

if boolean-expression then expression1 [ else expression2 ]

Comentarios

En la sintaxis anterior, expression1 se ejecuta cuando la expresión booleana se evalúa como true ; de lo contrario, expression2 se ejecuta.

A diferencia de otros lenguajes, if...then...else la construcción es una expresión, no una instrucción . Esto significa que genera un valor, que es el valor de la última expresión de la rama que se ejecuta. Los tipos de los valores generados en cada rama deben coincidir. Si no hay ninguna rama else explícita, su tipo es unit . Por lo tanto, si el tipo de la rama es de cualquier tipo distinto de , debe haber then una rama con el mismo tipo de valor unit else devuelto. Al encadenar if...then...else expresiones juntas, puede usar la palabra clave en elif lugar de ; son else if equivalentes.

Ejemplo

En el ejemplo siguiente se muestra cómo usar la if...then...else expresión .

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
10 is less than 20
What is your name? John
How old are you? 9
You are only 9 years old and already learning F#? Wow!

Vea también