Когда я принимал CS в колледже (в середине 80-х), одна из идей, которые постоянно повторялись, заключалась в том, чтобы всегда писать циклы, которые проверяются наверху (хотя...), а не внизу (do... while ) цикла. Эти понятия часто подтверждались ссылками на исследования, в которых показано, что циклы, которые были проверены наверху, статистически гораздо более достоверны, чем их сравнительные результаты.
В результате я почти всегда пишу петли, которые проверяют вверху. Я не делаю этого, если он вводит дополнительную сложность в коде, но этот случай кажется редким. Я замечаю, что некоторые программисты склонны почти исключительно писать петли, которые проверяют внизу. Когда я вижу конструкции вроде:
if (condition)
{
do
{
...
} while (same condition);
}
или инверсный (if
внутри while
), это заставляет меня задаться вопросом, действительно ли они написали его так или добавили оператор if
, когда они поняли, что цикл не обрабатывает нулевой регистр.
Я сделал несколько поисковых запросов, но не смог найти литературу по этому вопросу. Как вы, ребята (и gals), пишете свои циклы?