Б'ярн Страуструп (творець C ++) одного разу сказав, що уникає циклів "do / while" і вважає за краще писати код у вигляді циклу "while". [Див. Цитату нижче.]
Почувши це, я переконався, що це правда. Які ваші думки? Чи є приклад, коли "робити / в той час" набагато чистіше і легше зрозуміти, ніж якби замість цього ви використовували "в той час"?
У відповідь на деякі відповіді: так, я розумію технічну різницю між "робити / поки" і "поки". Це більш глибоке питання щодо читабельності та структурування коду, що включає цикли.
Дозвольте запитати по-іншому: припустимо, вам заборонили використовувати "do / while" - чи є реалістичний приклад, коли це не дасть вам іншого вибору, як писати нечистий код, використовуючи "while"?
З "Мова програмування на C ++", 6.3.3:
На моєму досвіді, твердження do є джерелом помилок і плутанини. Причина полягає в тому, що його тіло завжди виконується один раз перед оцінкою стану. Однак, щоб організм працював правильно, щось дуже схоже на стан повинно відбуватися навіть з першого разу. Частіше, ніж я міг би здогадатися, я виявив, що умова не виконується, як очікувалося, ні коли програма була вперше написана і перевірена, ні пізніше після того, як код, що передував їй, був змінений. Я також віддаю перевагу умові "спереду, де я це бачу". Отже, я, як правило, уникаю тверджень. -Бьярн