我想知道有没有办法返回到for循环的最后一次迭代,在中断后继续从那里开始,例如:
void loop()
{
for (n ; n<10; n++)
if (n=5) { break; }
}
// code
loop(); // should start from 6 ...
答案 0 :(得分:1)
写一堂课:
class my_loop
{
int i;
public:
my_loop(): i(0) {}
void loop_some()
{
while (i != some_limit)
...
}
};
该类的实例包含运行循环的必要信息。您可以从loop_some()
返回,并在必要时再次致电。
答案 1 :(得分:0)
将n
声明为静态变量(static int n=0
),以便保留其值并使用continue
代替break
。
void loop()
{
static int n=0;
for (; n<10; n++){
if (n==5 ){
cout<<" n = 5 ";
continue;
}
cout<<""<<n<<" ";
}
}
输出:
0 1 2 3 4 n = 5 6 7 8 9
Press any key to continue
答案 2 :(得分:-1)
我能想到的是使用 goto 离开并回到你的循环中。但是你应该试着避免这种情况,因为它会导致非常难以理解的代码。以下是两个可以帮助决定的链接: