条件表达式: if...then...else

表达式 if...then...else 运行不同的代码分支,并且根据给定的布尔表达式计算结果为不同的值。

语法

if boolean-expression then expression1 [ else expression2 ]

备注

在上一语法中,当布尔表达式计算结果为 时 ,expression1 运行 true ;否则 ,expression2 运行。

与其他语言不同, if...then...else 构造是表达式,而不是 语句。 这意味着它生成一个值,该值是执行分支中最后一个表达式的值。 每个分支中生成的值的类型必须匹配。 如果没有显式分支 else ,则其类型为 unit 。 因此,如果分支的类型是 除 外的任何类型 then unit ,则必须有一个返回 else 类型相同的分支。 将表达式 if...then...else 链接在一起时,可以使用 关键字 elif 而不是 else if ;它们等效。

示例

下面的示例演示如何使用 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
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!

另请参阅