44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
# Управление потоком
|
|
|
|
FZLang поддерживает условные конструкции и отдельные блоки кода.
|
|
Условия записываются в круглых скобках, тело может быть одной инструкцией или блоком в фигурных скобках.
|
|
|
|
## Условие if
|
|
|
|
```
|
|
if (2 + 2 >= 4)
|
|
printline("two plus two is four");
|
|
else
|
|
{
|
|
printline("unexpected result");
|
|
exit(1);
|
|
}
|
|
```
|
|
|
|
Ветка `else if` является обычным `else`, за которым следует новый `if`.
|
|
Условие вычисляется, после чего ВМ переходит в одну из веток; обычно это булево значение или результат сравнения.
|
|
|
|
## Блоки
|
|
|
|
Фигурные скобки создают отдельное окружение:
|
|
|
|
```
|
|
{
|
|
int local = 10;
|
|
printline(local);
|
|
}
|
|
```
|
|
|
|
После выхода из блока его окружение уничтожается.
|
|
Локальные имена не должны использоваться за пределами блока.
|
|
|
|
## Ограничения
|
|
|
|
В текущей реализации нет циклов while или for. Повторяющееся вычисление выражается рекурсивными функциями.
|
|
|
|
---
|
|
|
|
Далее: [Функции и рекурсия](./04_functions-and-recursion.md)
|
|
|
|
Назад: [Основы и типы](./02_basics-and-types.md)
|