Условные выражения. if... then...else (F#)
Выражение 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