Запустите bool контролируемый цикл еще раз - PullRequest
0 голосов
/ 24 мая 2018
bool loop;
do {
     ...
} while (loop);

Мне нужно, чтобы этот цикл запускался еще раз после того, как loop равно false.Я не могу использовать целочисленные счетчики, чтобы сделать что-то вроде while (loop && counter > required), так как количество итераций изменяется с поступающими данными.

Ответы [ 4 ]

0 голосов
/ 24 мая 2018

Это также будет работать.

bool loop=true;
bool loop2=true;
do {
    if(loop==false) loop2=false;

    ......loop=false;

} while (loop || loop2);

т.е. используйте логическое выражение "loop OR loop2".Изначально оба верны.«loop2» становится ложным только одна итерация после того, как «loop» становится ложным.Итак, еще одна итерация для вас.

0 голосов
/ 24 мая 2018

Начните считать после того, как ваше условие цикла станет истинным.

bool loop;
int exit_counter = 0;
do {
     // ...

     if (loop || exit_counter > 0)
         exit_counter++;
} while (exit_counter < 2);

Однако я бы предпочел метод @ martin.dowie.Это понятнее.

0 голосов
/ 24 мая 2018
bool loop;
int n = 1;
do {
     ...
} while ((loop && n) || n--);
0 голосов
/ 24 мая 2018
bool loop;
do {
    loop = process(...);
} while (loop);
loop = process(...);
...