Step 11 (S-43608)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/536/step/11

Цикл do-while

В С++ существует вариация цикла while, которая называется do-while. В отличие от обычного while в do-while условие проверяется не до, а после итерации. Т.е. такой цикл всегда имеет хотя бы одну итерацию.

Давайте сравним обычный while:


int i = 10;
int sum = 0;
while (i < 10) {
    sum += i;
}
// sum = 0


И do-while: 



int i = 10;
int sum = 0;
do {
    sum += i;
} while(i < 10);
// sum = 10


Как видите, в случае с do-while мы добавили 10 к переменной sum, а в обычном while — нет.

Иногда цикл do-while используется в макросах (см. следующий урок) для того, чтобы объединить несколько инструкций в одну. Действительно, если мы обернём инструкции в do-while c ложным условием, то это будет удобной синтаксической конструкцией, все инструкции которой выполнятся ровно один раз.


do { /* code */ } while(false); // тело цикла выполнится ровно один раз