Я думаю, что мы должны стремиться сделать код понятным, и мне трудно думать, где понятен «логический цикл». Попытка использовать «логический цикл» может показаться более странной в коде, но я думаю, что это умаляет понятность и удобство сопровождения кода.
Я дистиллировал то, что вы описали:
поэтому, если FYEProcessing равен False, запустите этот цикл один раз, если FYEProcessing - true, запустите его дважды
в
поэтому, если FYEProcessing имеет значение False, запустите этот цикл один раз [с false], если FYEProcessing имеет значение true, запустите его дважды [с false, затем true]
или
запустить этот цикл один раз с false. Если FYEProcessing имеет значение true, запустите его снова с true
CreatePaymentRecords(TermDates, false);
if (FYEProcessing) {
CreatePaymentRecords(TermDates, true);
}