Когда вы говорите о качестве кода, не придавайте большого значения производительности, так как невозможно быть уверенным, пока вы на самом деле не выполните строгое профилирование своего кода.
И разбиение цикла обычно будетне сильно ударит по производительности, если вы не имеете дело с миллиардами записей.Большинство современных компиляторов очень эффективны в оптимизации, поэтому ваши предположения могут оказаться неверными.
Теперь давайте рассмотрим некоторые преимущества разбиения циклов
Больше читаемости
Одним из недостатков процедурного кода является то, что трудно узнать, какие части кода связаны, пока вы не прочитаете весь код.Поэтому, если в одном цикле есть два действия, я не знаю, связаны ли они или нет, пока я не прочитаю весь цикл.Это может очень затруднить внесение изменений.
С разделением циклов и, предпочтительно, в разных функциях, я уверен, что эти два действия не связаны, поэтому я могу свободно реорганизовать одно без влияния на другое.
Меньше локальных переменных
Циклы, которые выполняют одно действие и вычисляют одно значение, могут просто возвращать это значение.Это означает, что вам не нужно накапливать значения в нескольких локальных переменных в вашем коде, что упрощает рефакторинг вашего кода.
Разделение циклов обычно создает возможность для большего рефакторинга, поскольку теперь вы лучше понимаетеваш код, и его легче изменить.
В конце, если вы все же получаете удар по производительности, вы всегда можете снова объединить циклы.