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

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

構文

if boolean-expression then expression1 [ else expression2 ]

解説

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

他の言語とは異なり、if...then...else コンストラクトはステートメントではなく式です。 つまり、値が生成されるということを意味します。この値は、実行される分岐の最後の式の値です。 各分岐で生成される値の型は一致している必要があります。 明示的な else 分岐がない場合、その型は unit になります。 したがって、then 分岐の型が unit 以外の型である場合は、戻り値の型が同じである else 分岐が存在する必要があります。 if...then...else 式を連結する場合は、else if の代わりにキーワード 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
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!

関連項目