在java逻辑中嵌套for循环三次

时间:2016-11-02 22:18:20

标签: java for-loop nested-loops

我正在及时从一本名为java的教科书中运行此代码,我可以看到输出但我不完全理解这个嵌套for循环的过程。

for (int die1 = 1; die1 <= 6; die1++)
    for (int die2 = 1; die2 <= 6; die2++)
        for (int die3 = 1; die3 <= 6; die3++)
            System.out.println(die1 + die2 + die3 + " From " + die1 + "+" + die2 + "+" + die3);

模具编号的输出结果是这样的, 111 112 113 114 115 116

我可以理解。第三个for循环循环6次,每次die3递增,并显示输出。

下一行输出给出

121 122 123 124 125 126

这是我有点困惑的地方。我可以看到die2现在已经增加了1并且增加到了2,但是我很困惑die3的值现在又回到了1并再次递增。有人可以向我解释这个嵌套for循环中发生了什么的过程吗?感谢

此外,通过应用&#34; {}&#34;更改了逻辑。每个循环的括号?

1 个答案:

答案 0 :(得分:2)

通过添加括号不会更改逻辑,因为在这种情况下,括号内的每个语句只有一行。如果你想在一个块中包含多行,你需要括号(尽管总是使用它们是一个好主意 - 不需要任何费用并使代码更具可读性。)

至于代码是如何工作的,让我们来看看它。

  1. 我们进入一个从1-6开始的循环。这个循环从1开始。
  2. 我们进入一个从1-6开始的新循环。这也从1开始。
  3. 我们从1-6进入最终循环。这从1开始。
  4. 此时发生第一个打印声明,打印111。
  5. 来自步骤3的循环遍历所有6个数字,打印111-116。
  6. 来自步骤3的循环结束,所以现在来自步骤2的循环可以从1增加到2
  7. 循环2之后的语句是循环3,因此新循环从1开始。
  8. 打印语句再次启动1-6的新内循环,导致打印数字121-126
  9. 如果你仍然不明白,一个很棒的工具就是设置一个断点并逐步完成代码。你可以看到一步一步发生的事情。