# Условные операторы

Программа, которая не может реагировать на данные - бесполезна. Вы можете контролировать её выполнение при помощи условных операторов.

В самом простом виде условный оператор выглядит так:

```fsharp
let name = readln ()
if name = "Mark":
    print "Hello, Mark!"
```

В этой программе мы получаем имя с консоли. Если оно равно `Mark`, то выводим `"Hello, Mark!"`, иначе - не делаем ничего. Мы можем что-то сделать, если условие ложно добавив `else`:

```fsharp
let name = readln ()
if name = "Mark":
    println "Hello, Mark!"
else:
    println "Hello, other person!"
```

В этом варианте программы мы выводим `"Hello, other person!"` если введённая пользователем строка не равна `Mark`.

Мы можем объединить несколько таких операторов, сделав несколько проверок:

```fsharp
let name = readln ()
if name = "Mark":
    println "Hello, Mark!"
else if name = "Alice":
    println "Hello, Alice!"
else:
    println "Hello, other person!"
```

Однако, условный оператор может использоваться в качестве выражения:

```fsharp
let name = readln ()
let message = 
        if name = "Mark": "Hello, Mark!" 
        else: "Hello, other person!"
println message 
```

Так, если `name` в примере выше равно `"Mark"`, то `if` возвратит `"Hello, Mark!"`, иначе - оно возвратит `"Hello, other person!"`

В случае, когда выражение `if` не имеет блока `else` и условие оказалось ложным, возвращается `()`
