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






























