【问题标题】:Please explain an iteration function in this for statement请在这个 for 语句中解释一个迭代函数
【发布时间】:2014-01-05 20:11:19
【问题描述】:

这是我在 Schildt 的 Java 教程中遇到的一个非常简单的 for 循环。我已经研究了一段时间,但仍然不确定它如何返回值 15。特别是我无法弄清楚“sum”变量在语句的迭代部分中所起的作用。对此的一个很好的解释将极大地帮助我在我的 java 学习中前进。本书的作者只是简单地将其作为一个示例,说明如何使用没有主体的循环,而没有解释“总和”值以及它是如何迭代的。

声明如下:

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

我们如何解释变量 sum 在这个语句中的最终值为 15?

【问题讨论】:

    标签: loops for-loop sum iteration


    【解决方案1】:

    下面是循环内部发生的事情。

    1. 我=1;总和 = 1;
    2. i=2;总和 = 1+2 = 3;
    3. i=3;总和 = 3+3 = 6;
    4. i=4;总和 = 6+4 = 10;
    5. i=5;总和 = 10+5 = 15;

    【讨论】:

      【解决方案2】:

      i由于i++语句增加了5倍,并在每次循环迭代中添加到sum,所以

      1 + 2 + 3 + 4 + 5 = 15
      

      【讨论】:

        【解决方案3】:

        这条指令做了两件事: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;
        

        【讨论】:

        • 我认为这个解释的问题是 i 在你的最终迭代中被赋值为 6;这是循环中的表达式“i
        • 解释正确,电脑赋值i=6;然后问 6
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多