> For the complete documentation index, see [llms.txt](https://documentation.soulver.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.soulver.app/ru/spravochnik-po-sintaksisu/general/conditionals-and-comparisons.md).

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

Как и многие языки программирования, Soulver поддерживает условные операторы (иногда называемые "операторами if").

В Soulver условный оператор выражается в одной строке. Ключевые слова `if`, `then`, `else`, `unless`, `true` и `false` пока распознаются только на английском:

```
доход = $45k                                     | $45 000,00

if доход > $30k then налог = 20% else налог = 5% | 20%

Уплаченный налог: доход × налог                  | $9 000,00
```

**Объявление переменной с использованием условного оператора**

```
доходы = $35k
расходы = $21,5k

прибыльно = true if доходы > расходы              | true
неплатёжеспособно = false unless расходы > доходы | false
```

**Использование «и» и «или» в условных операторах**

```
ИМТ = 24
Недостаток веса = ИМТ < 18,5            | false
Нормальный вес = ИМТ >= 18,5 и ИМТ < 25 | true
Избыточный вес = ИМТ >= 25 и ИМТ < 30   | false
Ожирение = ИМТ >= 30                    | false
```

{% hint style="info" %}
&& и || также поддерживаются
{% endhint %}

#### Операторы сравнения и булевы значения

Soulver поддерживает стандартные операторы сравнения в стиле ["C"](https://en.wikipedia.org/wiki/C_\(programming_language\)).

Возвращается булево значение (`true` или `false`).

| Название         | Оператор |
| ---------------- | -------- |
| Равно            | ==       |
| Не равно         | !=       |
| Больше чем       | >        |
| Меньше чем       | <        |
| Больше или равно | >=       |
| Меньше или равно | <=       |

Вы можете присвоить переменной булево значение напрямую

```
стоимость = $500
скидка = true
if скидка then стоимость = стоимость - 10%
стоимость | $450,00
```

Вы также можете использовать операторы сравнения вне условных операторов

```
20 км == 20 000 м | true
11:30 < 9:30      | false
```
