Expresiones condicionales:if...then...elseConditional Expressions: if...then...else

La if...then...else expresión ejecuta distintas bifurcaciones de código y también se evalúa como un valor diferente en función de la expresión booleana dada.The if...then...else expression runs different branches of code and also evaluates to a different value depending on the Boolean expression given.

SintaxisSyntax

if boolean-expression then expression1 [ else expression2 ]

ComentariosRemarks

En la sintaxis anterior, expression1 se ejecuta cuando la expresión booleana se evalúa truecomo; de lo contrario, expression2 se ejecuta.In the previous syntax, expression1 runs when the Boolean expression evaluates to true; otherwise, expression2 runs.

A diferencia de otros lenguajes, if...then...else la construcción es una expresión, no una instrucción.Unlike in other languages, the if...then...else construct is an expression, not a statement. Esto significa que genera un valor, que es el valor de la última expresión de la bifurcación que se ejecuta.That means that it produces a value, which is the value of the last expression in the branch that executes. Los tipos de los valores generados en cada bifurcación deben coincidir.The types of the values produced in each branch must match. Si no hay ninguna rama else explícita, su tipo es unit.If there is no explicit else branch, its type is unit. Por lo tanto, si el tipo then de la bifurcación es cualquier unittipo que no sea, else debe haber una rama con el mismo tipo de valor devuelto.Therefore, if the type of the then branch is any type other than unit, there must be an else branch with the same return type. Al encadenar if...then...else expresiones juntas, puede usar la palabra elif clave en lugar else ifde; son equivalentes.When chaining if...then...else expressions together, you can use the keyword elif instead of else if; they are equivalent.

EjemploExample

En el ejemplo siguiente se muestra cómo usar la if...then...else expresión.The following example illustrates how to use the if...then...else expression.

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énSee also