Циклы
Цикл - это конструкция, позволяющая выполнять последовательность команд неоднократно. Sanny Builder поддерживает несколько видов циклов: for, while, repeat.
FOR..END
В цикле FOR
количество повторений (итераций) определено заранее.
Синтаксис:
FOR <имя переменной> = <начальное значение> TO/DOWNTO <конечное значение> [шаг = 1]
<тело цикла>
END
имя переменной
- переменная, которая используется для подсчета количества итераций (счетчик)
начальное значение
- значение счетчика перед первой итерацией (любое число, включая имя модели)
TO
или DOWNTO
- указывает на то, увеличивается или уменьшается значение счетчика после каждой итерации
конечное значение
- значение счетчика, при котором цикл завершается (любое число, включая имя модели)
шаг
- необязательный параметр, который определяет на сколько изменяется значение счетчика после каждой итерации. По умолчанию равен 1
тело цикла
- команды, которые выполняются при каждой итерации цикла; тело цикла может отсутствовать
Если тип счетчика не был объявлен ранее, счетчик приобретает тип Integer
. Если начальное значение
, конечное значение
или шаг
цикла указаны в виде переменных, эти переменные будут автоматически объявлены с тем же типом, который есть у переменной цикла.
Для использования дробных чисел для счетчика итераций, счетчик должен иметь тип Float
.
WHILE..END
Синтаксис:
WHILE <условие цикла>
<тело цикла>
END
условие цикла
- любой условный опкод
тело цикла
- команды, которые выполняются при каждой итерации цикла; тело цикла может отсутствовать
Цикл WHILE
работает до тех пор, пока условие цикла истинно. Условие цикла проверяется до первой итерации цикла. Поэтому если условие изначально ложно, цикл не отработает ни разу.
Константы True
и False
могут использоваться в качестве условия цикла.
Такой цикл будет выполняться бесконечно, пока в теле не выполнится командаBreak
.
Такой цикл игнорируется компилятором, т.к. условие изначально ложно.
В текущей версии допускается только один опкод в качестве условия цикла. Если нужно скомбинировать несколько проверок, их можно поместить в начало цикла и использовать команды Break
и Continue
REPEAT..UNTIL
Синтаксис:
REPEAT
<тело цикла>
UNTIL <условие цикла>
тело цикла
- команды, которые выполняются при каждой итерации цикла; тело цикла может отсутствовать
условие цикла
- любой условный опкод
Цикл REPEAT..UNTIL
работает, пока условие цикла не будет истинно. Условие проверяется в конце итерации цикла, поэтому данный цикл будет иметь минимум одну итерацию.
Константы True
и False
могут быть использованы в качестве условия цикла.
В текущей версии допускается только один опкод в качестве условия цикла. Если нужно скомбинировать несколько проверок, их можно поместить в конец цикла и использовать команды Break
и Continue
Команды Continue и Break
Если необходимо пропустить текущую итерацию цикла и перейти к следующей, используйте команду Continue
.
Команда Break
завершает цикл и передает управление на команду, следующую за завершающим end
.
Обе эти команды могут быть использованы как параметр в опкоде (например, jf Continue
) или как отдельная команда.
Last updated