【问题标题】:Need Help working with Nested For loop to display a block of text (Java)需要帮助使用嵌套 For 循环来显示文本块 (Java)
【发布时间】:2022-01-25 23:49:25
【问题描述】:

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

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

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

【问题讨论】:

  • 预期输出代表什么?

标签: java for-loop console-output


【解决方案1】:

这有点奇怪,但是使用嵌套循环可以做到这一点的一种方法是跳出内部循环,并在内部循环中使用 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

【讨论】:

  • 哇,谢谢,我完全忘记了休息,这很有帮助!
  • @GuandaoPrime 没问题!很高兴我能提供帮助。如果这可以解决您的问题,请不要忘记单击复选标记。
【解决方案2】:

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

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

【讨论】:

  • 谢谢,我知道这是一个解决方案,但我需要使用嵌套的 for 循环来完成此操作,这是我无法理解的。我可以使用 while 或 do/while 循环,但不管它们是否需要嵌套。
【解决方案3】:

每个循环都会继续,直到数字达到 4 或 1, 朋友,也许先在草稿纸上写下逻辑。 :D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    相关资源
    最近更新 更多