История страницы
Цикл "Для каждого"
...
Версия 10 (Java)
Группа действий: Базовые действия
...
Описание
Данное действие предназначено для обеспечения выполнения заданной итерации по всем элементам коллекции. Для Для добавления в тело цикла последовательности действий необходимо переместить их на контур действия "Цикл "Для каждого".
Иконка действия
...
Параметры и их настройки
Свойство |
---|
Описание | Тип | Пример заполнения |
---|
Обязательность заполнения поля | ||||
---|---|---|---|---|
Параметры | ||||
Коллекция |
Collection
Коллекция объектов, проход по которым будет осуществляться в цикле |
Коллекция
Идентификатор последовательности действий, которая должна выполняться на каждом шаге цикла.
!! Данный параметр не отображается и назначается системой автоматически.
Да
Действия в последовательности должны бытьRobin.Collection | Да | |||
Результаты | ||||
---|---|---|---|---|
Объект |
Объект, в который будет помещен каждый элемент коллекции |
Объект
во время выполнения итерации | Robin.Object |
Особые условия использования
Отсутствуют.
Порядок работы с циклом
...
"Для каждого"
- Выбрать действие "Для каждого" из группы действий "Базовые действия" и перенести в сценарий
...
- .
...
...
- Заполнить тело цикла необходимыми
...
- действиям.
Пример заполнения:
...
...
- Заполнить параметры действия.
- Коллекция (список значений, которые будут обработаны в цикле).
Пример заполнения параметров:
- Коллекция (список значений, которые будут обработаны в цикле).
...
4. Результат работы цикла: объект, в который будет помещен каждый элемент коллекции во время выполнения итерации.
Сравнение циклов "Для" и "Для каждого".
Цикл "Для" выполнит работу заданное количество раз. Итератор будет принимать значения от начального заданного значения до конечного с шагом, указанным в поле "Инкремент".
Цикл "Для каждого" последовательно работает с элементами выбранной коллекции. Количество итераций равно количеству элементов в коллекции, выбранной на входе.
Таким образом результат цикла "Для" это число, а "Для каждого" объект.
Пример использования
Задача
...
Существует коллекция переменных с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла, пока значение числовой переменной не будет равно значению "2".
Решение
...
Добавить цикл "Для каждого".
Добавить действие "Равно".
Добавить условие "Если". В ветвь "
НетИстина" добавить
прерывание цикла и сообщение в лог
.Сообщение в логи прерывание цикла.
Реализация
...
Создаем
и добавляем в коллекцию "Коллекция_значений" переменную с типом "
Число", которая будет являться частью условия "Если" и содержать значение "0".Создаем и добавляем в коллекцию "Коллекция_значений" переменную с типом "Массив чисел" и элементами"Коллекция". В коллекцию вносим значения (1988, 8, 2, 4)
", проход по которым будет осуществляться в цикле.- Открываем группу действий "Базовые действия". Помещаем
типа "Число".
Перемещаем в рабочее пространство студии действие
"Цикл "Для каждого".
Настройка действия: Параметр "Коллекция".
Выбираем Указываем созданную коллекцию"Коллекция_значений"
, проход по объектам которой будет осуществляться в цикле. В ходе работы робота, цикл будет проходить по каждому из значений в коллекции.
Перемещаем в рабочее пространство студии действие "Равно", внутрь цикла "Для каждого".
Параметр "
ОбъектПервый операнд".
Выбираем переменную "ITERATION_ACTUAL_STATE", в которую будет помещен каждый элемент коллекции.В данном параметре указываем объект текущей итерации цикла "Для каждого".
Параметр "Второй операнд". В данном параметре указываем число "2". При нахождении числа 2 в цикле "Для каждого", цикл закончит свою работу.
Перемещаем в рабочее пространство студии действие "Если", внутрь цикла "Для каждого".
Параметр "Условие". В данном параметре указывается результат действия "Равно". Если результат действия "Равно" - true, то робот пойдет по ветке "Истина", если - false, то - по ветке "Ложь".
В ветке "Истина" действия "Если" перемещаем
- Помещаем в рабочее пространство студии действие "Если" (см. описание действия "Если").
- Помещаем в рабочее пространство действия "Если" ветви "Нет" действие "Сообщение в лог" (см. описание действия "Сообщение в лог").
- Помещаем в рабочее пространство действия "Если" ветви "Нет" действие "Прервать цикл" (см. описание действия "Прервать цикл").
Помещаем в рабочее пространство студии действие "Сообщение в лог"
(см. описание действия "Сообщение в лог"). .
В ветке "Истина" действия "Если" перемещаем действие "Прервать цикл"
Запускаем робота по кнопке "Запуск" в верхней панели. Итоговая схема робота будет выглядеть следующим образом.
Результат
...
Робот отработал успешно. Алгоритм прошел по циклу и был прерван после установки переменной значения того как в коллекции было найдено значение "2".
Кейс
...
"Сортировка". Цикл
...
"Для каждого"
Задача
: В папке находятся файлы с расширением .xls(x) и .docx. Необходимо создать папки с названием расширения и распределить файлы по папкам.
Решение
...
На рабочую область перенести действия
«Получить "Получить содержимое
папки» и «Для каждого».
...
папки" и "Для каждого".
Заполнить параметры действий.
...
Действие
...
"Получить содержимое
...
папки".
В строке
...
"Папка" указать путь до папки с файлами, которые необходимо рассортировать.
В
...
поле "Тип объектов" указать значение "только файлы".
...
...
Действие "Для каждого".
В строке
...
...
"Коллекция" указать результат выполнения действия
...
"Получить содержимое папки".
В тело цикла поместить следующие действия в указанном порядке:
«Получить "Получить информацию о
файле»файле";
«Извлечь "Извлечь с
позиции»позиции";
«Найти папку»"Найти папку";
«Получить длину»"Получить длину";
«Если»"Если";
На ветвь
«Истина» поставить "Истина" переместить действия:
...
"Получить значение по
...
индексу";
...
"Конвертировать данные";
iii. «Переместить файл»;
g. На ветвь «Ложь» установить действия:
i. «Создать новую папку»;
ii. «Переместить файл»;
...
"Переместить файл";
На ветвь "Ложь" переместить действия:
"Создать новую папку";
"Переместить файл";
Заполнить параметры действий.
Для действия
...
"Получить информацию о
...
файле":
Параметр
...
...
"Файл" - ссылка на объект, обрабатываемый в момент итерации цикла.
...
Для действия
...
"Извлечь с
...
позиции";
Параметр
...
"Исходный текст" - результат "Расширение" действия
...
"Получить информацию о
...
файле".
Параметр
...
"Позиция" - 1.
Параметр
...
"Длина" - если данный параметр не заполнен, то текст извлекается с заданной позицией до конца.
...
...
Для действия
...
"Найти папку".
Параметр
...
"Папка для
...
поиска" - путь до папки, где храниться подпапка для сортировки файлов.
Параметр
...
"Шаблон поиска" - результат действия
...
"Извлечь с
...
позиции".
...
...
Для действия "Получить длину".
Параметр
...
"Коллекция или
...
массив" - результат действия
...
...
"Найти папку".
Для действия "Если".
С помощью инструмента построения выражения в параметр условия записать логический оператор
...
"Больше чем", где первый операнд – результат действия
...
"Получить длину", а второй – 0.
...
...
Для действия "Получить значение по
...
индексу".
Параметр
...
"Коллекция" - результат действия
...
"Найти папку".
Параметр
...
"Индекс" - 0.
...
...
...
Для действия
...
"Конвертировать данные".
Параметр
...
"Источник" - результат действия
...
"Путь к
...
папке".
Параметр
...
"Тип" - путь к папке.
...
...
...
Для действия "Переместить файл".
Параметр
...
"Файл" - ссылка на объект, обрабатываемый в момент итерации цикла.
Параметр
...
"Папка назначения" - результат действия
...
"Конвертировать данные".
...
...
Для действия
...
"Создать новую
...
папку".
Параметр
...
"Родительская папка" - путь до папки, где , где храниться подпапка для сортировки файлов.
Параметр
...
"Имя" - результат действия
...
"Извлечь с
...
позиции".
...
...
Для действия "Переместить файл".
Параметр
...
"Файл" - ссылка на объект, обрабатываемый в момент итерации цикла.
Параметр
...
"Папка назначения" - результат действия
...
"Создать новую
...
папку".
...
Результат
Робот отработал успешно.
: Алгоритм прошел по циклу, рассортировывая файлы по папкам.