我无法弄清楚下面的 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
答案 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