需要有关此循环的帮助

时间:2013-10-20 19:29:25

标签: java loops for-loop

对于我的Java实践中期,我们需要编写一行代码的确切输出,在本例中是for循环。这是代码:

for(int first = 3; first > 0; first--)
        for(int second = --first; second <= 5; second++)
            System.out.println(first + " " + second);

所以我认为输出是:

2 2
2 3
2 4
2 5

但是当我在Ecplipse中运行时,它出现了:

2 2
2 3
2 4
2 5
0 0
0 1
0 2
0 3
0 4
0 5

我理解“秒”将从5变为0,因为“第二个&lt; = 5”但我不知道“first”如何也重置为0.

我搜遍了所有的答案,但找不到答案。任何有关如何工作的帮助都会很棒。谢谢!

1 个答案:

答案 0 :(得分:3)

你递减first两次:每次外循环迭代一次,每次内循环开始迭代。

因此,在打印2 5之后,它会触及内循环的末尾,并从外循环中击中first--。然后当它再次回到内部循环时,它会在打印任何其他内容之前点击int second = --first。因此从2到0。

就个人而言,我会尽量避免像int second = --first;这样的陈述 - 副作用经常引起混淆。