bool loop;
do {
...
} while (loop);
我需要在loop
为false
之后再次运行此循环。
我不能使用整数计数器来制作像while (loop && counter > required)
这样的东西,因为迭代次数随传入数据而变化。
答案 0 :(得分:9)
bool loop;
do {
loop = process(...);
} while (loop);
loop = process(...);
答案 1 :(得分:4)
bool loop;
int n = 1;
do {
...
} while ((loop && n) || n--);
答案 2 :(得分:1)
在循环条件成立后开始计数。
bool loop;
int exit_counter = 0;
do {
// ...
if (loop || exit_counter > 0)
exit_counter++;
} while (exit_counter < 2);
然而,我更喜欢@ martin.dowie的方法。它更清楚。
答案 3 :(得分:1)
这也可以。
bool loop=true;
bool loop2=true;
do {
if(loop==false) loop2=false;
......loop=false;
} while (loop || loop2);
即使用“loop OR loop2”逻辑表达式。最初两者都是真的。 “loop2”在“循环”变为假之后仅变为一次迭代。所以你需要额外的迭代。