Поделиться через


Условные выражения. 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
      

См. также

Другие ресурсы

Справочник по языку F#