● Используйте порядковые или перечислимые типы для границ массивов и циклов ● Используйте смысловые имена переменных, чтобы сделать вложенные циклы читабельными ● Ограничивайте вложенность тремя уровнями ● Делайте циклы достаточно короткими, чтобы их можно было увидеть сразу целиком
Сообщают ли переменные i, j и k что-либо о содержимом transaction? Имена переменных payCodeIdx, month и divisionIdx гораздо красноречивее, чем i, j и k.
Компьютер с одинаковой легкостью прочитает обе версии цикла. Однако людям легче будет читать вторую версию, поэтому второй вариант лучше, ведь ваша основная аудитория состоит из людей, а не из компьютеров.