Есть ли необходимость в цикле do {…} while ()?

Бьярн Страуструп (Cjarne Stroustrup) (создатель C ++) однажды сказал, что он избегает циклов «do / while» и предпочитает вместо этого писать код в терминах цикла «while». [Смотрите цитату ниже.]

Услышав это, я обнаружил, что это правда. о чем ты думаешь? Есть ли пример, когда «do / while» намного чище и проще для понимания, чем если бы вы использовали вместо него «while»?

В ответ на некоторые ответы: да, я понимаю техническую разницу между «делай / пока» и «пока». Это более глубокий вопрос о читабельности и структурировании кода с использованием циклов.

Позвольте мне спросить по-другому: предположим, что вам запрещено использовать «do / while» - есть ли реалистичный пример, в котором у вас не было бы выбора, кроме как писать нечистый код, используя «while»?

Из «Языка программирования C ++», 6.3.3:

По моему опыту, оператор do является источником ошибок и путаницы. Причина в том, что его тело всегда выполняется один раз, прежде чем условие будет оценено. Однако, чтобы тело работало правильно, что-то очень похожее на состояние должно сохраняться даже в первый раз. Чаще, чем я мог предположить, я обнаружил, что условие не выполняется должным образом ни тогда, когда программа была впервые написана и протестирована, ни позже, после изменения кода, предшествующего ей.Я также предпочитаю условие «там, где я могу это увидеть». Следовательно, я стараюсь избегать деланий. -Bjarne

Ответы на вопрос(12)

Ваш ответ на вопрос