Если ваш оператор for
может а) распознать, что он достиг конца своего входа, б) переключиться на новый источник ввода, то да, один цикл может сделать это.
Это, как говорится, вы будете делать код, который излишне сложно поддерживать и масштабировать (например, добавить третий входной источник).Вам будет лучше с одним фрагментом кода для итерации ваших входных источников, и когда новый источник должен быть обработан, передайте открытый дескриптор новой функции для получения данных из этого источника.