Java - 循环中有多个 "for" 运算符

Java - Multiple "for" operators in loop

这段代码是如何工作的? (它使用给定的大小(x,y,z)和坐标(coordX,coordY,coordZ)生成一个由块组成的长方体)

...
public void cuboid(int x, int y, int z)
    {
        for(int j = 0; j < x; j++)
            for(int k = 0; k < y; k++)
                for(int l = 0; l < z; l++)
            {
             Grass.setBlock(j + coordX, k + coordY, l + coordZ);
            }
...

多个 "for" 运算符如何工作?我认为,有一种方法可以更有效地做到这一点。

想想下面的代码:

int rows = 5;
for (int i = 1; i <= rows, i++)
{
     for (int j = 1; j <= i)
          System.out.print("*");
     System.out.println("");
}

如果你 运行 它,你会得到一个金字塔,其中每行星星的星星数量与行号相同。尝试追踪它。

你会发现,对于多个 for,最内层的循环 运行s 直到它的变量是它的父循环的值,这将 运行 直到它的变量是它的父循环 (...)

基本上,运行很多。 当 i == 1 时,j 循环 运行s 一次。当 i == 2 时,j 循环 运行s 两次。 如果有三个(比如,i,j,k),k 会 运行 j 次,这会 运行 i 次。我会递增,这将进入 j(从头开始),这将进入 k(从头开始)。我知道这不是很清楚,但很难解释。它需要一种直觉上的飞跃。

至于 simplicity/effectiveness,我不确定,但恕我直言,这是一个很好的方法。

我真的不明白为什么你认为它效率不高。如果目标是从单一立方体构建一个大小为 x,y,z 的大型长方体,那么您将需要 x*y*z 个单一立方体...因为此代码执行 exactly x*y*z 调用,效率再高不过了。