C &引用;“储蓄”;foor循环中的当前状态将在以后继续
目前我正在考虑以下问题,也许有人可以帮助我: 对于minecraft,我想改变很多块,为了防止延迟,我只想同时改变几个块。要更改长方体,我通常使用如下循环:C &引用;“储蓄”;foor循环中的当前状态将在以后继续,c,algorithm,C,Algorithm,目前我正在考虑以下问题,也许有人可以帮助我: 对于minecraft,我想改变很多块,为了防止延迟,我只想同时改变几个块。要更改长方体,我通常使用如下循环: for(int x=t.x; x<t.X; x++) for(int y=t.y; y<t.Y; y++) for(int z=t.z; z<t.Z; z++) { // .. } 用于(int x=t.x;x您的代码看起来像C。在C中,进程在离开调用函数后无法返回到给定的堆栈状态。因
for(int x=t.x; x<t.X; x++)
for(int y=t.y; y<t.Y; y++)
for(int z=t.z; z<t.Z; z++) {
// ..
}
用于(int x=t.x;x您的代码看起来像C。在C中,进程在离开调用函数后无法返回到给定的堆栈状态。因此,在语言级别上,离开循环并稍后返回到它是不可能的。在其他语言中,情况有所不同。例如,在Python语言的Pypy实现中,可以使用里贝
但是,您可以通过使用自己的对象存储最后的计数器来实现类似的方法
结构计数器{intx,y,z;};
布尔连续操作(结构计数器*CTR){
对于(;ctrs->xx++){
对于(;ctrs->yy++){
对于(;ctrs->zz++){
// ..
如果(我们想中断环路)
返回true;
}
ctrs->z=t.z;
}
ctrs->y=t.y;
}
返回false;
}
void startoops(){
结构计数器CTR;
ctrs.x=t.x;
ctrs.y=t.y;
ctrs.z=t.z;
while(连续运行和控制){
//在循环之间做任何你想做的事情
}
}
但是,与直接在内部循环中执行相关操作相比,我认为上述方法没有多大好处。因此我不确定这是否对您有用。您的意思是要在最外层循环的每次迭代结束时存储状态吗?例如,我想更改多维数据集中的所有块。我知道我想这样做例如,在300次更改后停止,现在我需要继续填充多维数据集。我想我找到了使用while循环的解决方案,但我现在不确定