В этой статье мы рассмотрим работу операторов цикла for и foreach, которые можно применять для написания скриптов Mikrotik Routerboard.
Цикл for выполняет команды в течение определенного количества итераций (повторение какого-либо действия).
Рис.1. Mikrotik Routerboard, цикл for.
:for x from=0 to=20 do={:put $x;}
Рассмотрим структуру цикла for:
После объявления ключевого слова for, объявляем переменную х, которой будут присваиваться значения от нуля (from=0) до двадцати (to=20).
do={:put $x;} – действие, которое выполняется при каждой итерации.
Рис.2. Mikrotik Routerboard, цикл for с шагом.
В предыдущем примере мы оставили без внимания параметр step (шаг). Параметр задается следующим образом:
step=”Величина шага”
:for x from=0 to=20 step=2 do={:put $x;}
В этих двух примерах был задан шаг со значениями 2. В результате этого на экран были выведены все четные значения от 0 до 20.
:for x from=0 to=20 step=4 do={:put $x;}
Рис.3. Mikrotik Routerboard. Цикл for с шагом, нечётные.
:for x from=1 to=20 step=2 do={:put $x;}
Получаем то же, что и в предыдущих примерах. Но вывод цифр от 1 до 20. В результате вывелись все нечётные значения.
Цикл foreach производит выполнение команд для каждого элемента в списке. С помощью foreach можно перебрать элементы массива.
Рис.4. Mikrotik Routerboard, цикл foreach.
Создадим массив my, состоящий из пяти элементов.
:local my [:toarray "us1,us2,us3,us4,us5"];
Структура цикла foreach.
:foreach x in=$my do={:put $x;};
После ключевого слова foreach, объявляем переменную х. В неё один за одним будут помещаться элементы массива (in=$my).
Теперь выполняем действие для элементов массива ( do={:put $x;}).
Евгений Рудченко специально для ASP24.