Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C &引用;“储蓄”;foor循环中的当前状态将在以后继续_C_Algorithm - Fatal编程技术网

C &引用;“储蓄”;foor循环中的当前状态将在以后继续

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中,进程在离开调用函数后无法返回到给定的堆栈状态。因

目前我正在考虑以下问题,也许有人可以帮助我:

对于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中,进程在离开调用函数后无法返回到给定的堆栈状态。因此,在语言级别上,离开循环并稍后返回到它是不可能的。在其他语言中,情况有所不同。例如,在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循环的解决方案,但我现在不确定