有人可以帮助我了解Java中的这个for循环吗?

时间:2019-08-27 19:13:02

标签: java for-loop

我经历了一些计算机科学测试,但不了解此for循环的结果。

    int a, b, counter;

    for (a = 1; a <= 10 ; a = a + 1)
    {
        for (b = 0; b < a; b = b + 1) 
        {
                    counter++;
        }
    }
    System.out.println("Counter: " + counter);

第一个for循环迭代10次,但是第二个又如何呢?为什么输出55?

5 个答案:

答案 0 :(得分:4)

第一个循环重复10次。对于第一个循环的迭代,第二个循环将迭代:1 time2 times3 times .... 10 times

说明::在第二个循环中,b0迭代到小于a。当a1时,将迭代1 time。当a2时,第二个循环迭代2 times,当a3时,第二个循环迭代3 times,依此类推。

所以计数器值为:1 + 2 + 3 + 4 .... + 10 = (10 * (10 + 1))/2 = 55

答案 1 :(得分:0)

内部循环迭代a次,因此第一次循环将循环1次,最后一次将循环10次。每次此内部循环运行时,计数器都会递增,因此它将运行1 + 2 + ... + 10 = 55次。

答案 2 :(得分:0)

这里的逻辑如下:

c := 0
for a from 1 to 10:
    for b from 0 to a:
        increment c
print c

内部循环在第一次迭代中迭代一次,在第二次迭代中迭代两次,在第N次迭代中迭代N次。这意味着c递增的次数为1+2+3+4+5+6+7+8+9+10 = 55

答案 3 :(得分:0)

这是Arithmetic progression

通常,公式是

n*(first number + last number)/2

因此,在这种情况下,

10(1 + 10)/2 = 55

如果将最后一个数字更改为例如13,则代码输出91。算术级数为

13(1 + 13)/2 = 91

答案 4 :(得分:0)

  

第一个for循环迭代10次,但是第二个又如何呢?

第二个循环迭代变量(a)次。

  

为什么输出55?

因为这是您添加前十个连续整数(从1开始)的结果。

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55