Условные выражения: if...then...else

if...then...elseВыражение выполняет различные ветви кода, а также вычисляет различные значения в зависимости от заданного логического выражения.

Синтаксис

if boolean-expression then expression1 [ else expression2 ]

Remarks

В предыдущем синтаксисе 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!

См. также