暂停和恢复循环c ++

时间:2015-06-21 11:19:22

标签: c++ algorithm for-loop

我想知道有没有办法返回到for循环的最后一次迭代,在中断后继续从那里开始,例如:

void loop()
{
    for (n ; n<10; n++)
        if (n=5) { break; }
}

// code

loop();  // should start from 6 ...

3 个答案:

答案 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 离开并回到你的循环中。但是你应该试着避免这种情况,因为它会导致非常难以理解的代码。以下是两个可以帮助决定的链接:

Use goto or not

Statements and flow control