需要帮助使用嵌套 For 循环来显示文本块 (Java)

Need Help working with Nested For loop to display a block of text (Java)

我需要制作一个如下所示的文本块:

1 1 4

1 2 3

1 3 2

1 4 1

我目前有这个代码:

for (int x = 1; x <= 4; x++) {
 for (int y = 4; y >= 1; y--) {
  System.out.println("1 " + x + " " + y);
 }
 System.out.println();
}

但它输出了错误的东西,如

1 1 4

1 1 3

1 1 2

1 1 1

1 2 4

1 2 3

1 2 2

1 2 1

1 3 4

1 3 3

1 3 2

1 3 1

1 4 4

1 4 3

1 4 2

1 4 1

有人可以帮助我吗?它与我的循环语法有关还是与内部有关?加上我是新来的,请不要太苛刻

你的循环逻辑不正确。你有两个循环,每个循环运行 4 次,所以你的循环总共运行 16 次,这不是你想要的。你想要这样的东西。

for (int x = 1; x <= 4; x++) {
    int y = 4 - x + 1;
    System.out.println("1 " + x + " " + y);
    System.out.println();
}

这有点奇怪,但是使用嵌套循环可以做到这一点的一种方法是跳出内部循环,并将 zvxf 具有的逻辑放在内部循环中而不是作为变量:

for (int x = 1; x <= 4; x++) {
        for (int y = 5-x; y >= 1; y--) {
        System.out.println("1 " + x + " " + y);
        break;
        }
    System.out.println();
}

输出:

1 1 4

1 2 3

1 3 2

1 4 1

每个循环都会继续,直到数字达到 4 或 1, 也许先把逻辑写在素描纸上,我的朋友。 :D