条件式: if... then...else (F#)

if...then...else 式は、コードのさまざまな分岐を実行する機能であり、指定されたブール式に応じて異なる値に評価されます。

if Boolean-expression then expression1 [ else expression2 ]

解説

前の構文では、ブール式が true に評価されると expression1 が実行され、それ以外の場合は expression2 が実行されます。

他の言語とは異なり、if...then...else 構造は式であり、ステートメントではありません。つまり、この構造では、実行される分岐の最後の式の値である 1 つの値が生成されます。各分岐で生成される値の型は同じである必要があります。else 分岐を明示的に指定しない場合、その型は unit になります。したがって、then 分岐の型が unit 以外の型である場合は、戻り値の型を同じにした else 分岐を指定する必要があります。if...then...else 式を多重にする場合は、 elseif キーワードの代わりに elif キーワードを使用できます。これらのキーワードの機能は同じです。

使用例

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
  
    John
910 is less than 20
You are only 9 years old and already learning F#?
  Wow!

参照

その他の技術情報

F# 言語リファレンス