请在此for语句中解释迭代函数

时间:2014-01-05 20:11:19

标签: loops for-loop sum iteration

这是一个非常简单的for循环,我在Schildt的Java教程中遇到过。我一直在研究它已经有一段时间了,我仍然不确定它是如何返回值15.特别是我无法弄清楚“sum”变量在语句的迭代中扮演的角色。对此的一个很好的解释将极大地帮助我继续学习java。本书的作者简单地将其作为一个例子,说明如何使用没有正文的循环,没有解释“sum”值以及如何迭代它。

以下是声明:

for(i = 1; i <= 5; sum += i++)   
    System.out.println("Sum is " + sum);

我们如何在本声明中将变量sum解释为最终值为15?

3 个答案:

答案 0 :(得分:0)

由于i语句,

i++增加了5倍,并且在每次循环迭代中被添加到sum,所以

1 + 2 + 3 + 4 + 5 = 15

答案 1 :(得分:0)

这是循环内部会发生的事情。

     
  1. i = 1; sum = 1;  
  2. i = 2; sum = 1 + 2 = 3;
  3. i = 3; sum = 3 + 3 = 6;  
  4. i = 4; sum = 6 + 4 = 10;   
  5. i = 5; sum = 10 + 5 = 15;

答案 2 :(得分:0)

这条指令做了两件事:sum += i++

第一

sum = sum + i;

以后:

i = i + 1;

//初始值

sum = 0;
i = 1;

//当循环完成其最后一条指令时,打印

sum = sum + 1
sum = 1;
i = i + 1;
i = 2;

============

sum = sum + 2
sum = 3;
i = i + 1;
i = 3;

============

sum = sum + 3
sum = 6;
i = i + 1;
i = 4;

============

sum = sum + 4
sum = 10;
i = i + 1;
i = 5;

============

sum = sum + 5
sum = 15;
i = i + 1;
i = 6;