考虑以下函数:
void callback(){
for (int i=0; i<100; i++)
for (int j=0; j<20; j++)
do_something(i,j);
}
我希望do_something(i,j)
被调用,并且i,j
像嵌套的for循环一样递增,每次callback()
被中断调用时。
我试着用静态变量写这个代码,如下所示:
void callback(){
static int i=0, j=0;
do_something(i,j);
if (j==20)
if (i==100) // done
else i++;
else j++;
}
这不是很可读,特别是考虑到我需要为嵌套多达6层的循环这样做。有什么建议吗?
3条答案
按热度按时间qni6mghb1#
你可能想要这样的东西:
如果在迭代完所有的“循环”之后调用回调函数,会发生什么还不清楚。我把它重新从(0,0)开始。
toe950272#
如果你有很多计数器要递增,不要使用单独的变量,使用一个数组来保存它们。然后你可以增加他们的里程表风格。
输出:
e4eetjau3#
如果你想让它看起来像嵌套的
for
循环,可以写嵌套的for
循环: