无法弄清楚嵌套for循环是如何运行的

时间:2014-09-23 04:34:17

标签: java for-loop nested-loops

我无法弄清楚下面的 for loop 如何产生以下输出。具体来说,第3和第4输出对我来说没有意义。 count2在等于​​1后如何等于0,但在 for循环中没有减法运算符?

您能否说明 for loop 如何运行?

脚本:

for (int count = 0; count <=3; count++) {
            for (int count2 = 0; count2 < count; count2++)
                System.out.println(count2);

输出:

0

0

1

0

1

2

4 个答案:

答案 0 :(得分:1)

我希望现在你能更清楚了。

public class Test {
    public static void main(String[] args) {
    for (int count = 0 ; count <= 3 ; count++) {
        System.out.println("\ncount = " + count);
        for (int count2 = 0 ; count2 < count ; count2++)
            System.out.println("count2 = " + count2);
    }
  }
}

<强>输出

count = 0

count = 1
count2 = 0

count = 2
count2 = 0
count2 = 1

count = 3
count2 = 0
count2 = 1
count2 = 2

** count2 循环仅运行(count-1)次。

答案 1 :(得分:1)

我只是按照正确的顺序排列,以便您能够更好地理解它...

 public static void main(String[] args) {
        for (int count = 0 ; count <= 3 ; count++) {
            System.out.println("For Count = "+count);
            for (int count2 = 0 ; count2 < count ; count2++)
                System.out.println("-->  count2 = " + count2);
            System.out.println();
        }
      }  

输出

For Count = 0  

For Count = 1  
-->  count2 = 0

For Count = 2  
-->  count2 = 0  
-->  count2 = 1  

For Count = 3  
-->  count2 = 0  
-->  count2 = 1  
-->  count2 = 2      

答案 2 :(得分:0)

你的问题是第二个for循环中的比较,通过将它与第一个循环的第一次迭代进行比较。这会生成你的偶发代码,因为它会增加嵌套for循环并检查比较,但是例如在第一次迭代中,count等于0.它会中断嵌套循环并再次统计外循环,并且递增count。这次,您的嵌套循环可以在重置之前到达一个。

对于每个余数循环都是一样的,嵌套到达外循环的当前迭代并停止。外循环递增,内循环将从0开始,并在外循环的迭代结束。

我的建议是在第二个for循环中使用不同的值进行比较,除非你的输出是你想要的。

答案 3 :(得分:0)

每次循环迭代时,第二个for循环重新初始化。 第一个输出是第一个forloop的第一次迭代 第2,第3输出来自第1个forloop的第2次迭代 第4,第5,第6输出来自第1个forloop的第3次迭代

第一个forloop的每次迭代都会导致第二个forloop重置为0