试图完全理解For循环

时间:2014-01-19 00:02:19

标签: java loops

我理解大部分内容在Java中的循环中是如何工作的但是我意识到我无法理解一个循环操作的命令。

基本上我无法理解这一点,因为我的课程中显示了这段简单但令人难以置信的代码,代码显示在下面。

public class Test {
    public static void main (String[] args) {
        int sum = 0;
        for (int k = 1; k < 10; k += 2)
        {
            sum += k;
            System.out.print(sum + " ");
        }
    }
}

程序输出的输出是1 4 9 16 25

现在我明白了它是如何重复并吐出数字的,但它是如何创建的。现在你可以说它通过取k并将其加到sum而创建1但是不应该等于3?

它变为k = 1;这使k等于1.k <1。 10;检查k是否小于10.然后问题是当k + = 2时;现在不应该等于3,而是在此操作发生后添加2比1,2 + 1 = 3但3 + 0 = 1时,sum现在以某种方式等于1?这是怎么回事。

我对此的合理性是,我认为任何程序都是逐行或统一解释代码而不是跳转。

总的来说,我的问题是,当k实际上等于3时,和等于1。

8 个答案:

答案 0 :(得分:5)

for循环的各个部分在不同的时间运行。

  1. 第一部分在开始时运行一次以初始化变量。

  2. 第二次是在循环开始时循环运行,说明是否退出。

  3. 每次围绕循环结束的循环运行最后一部分。

  4. 所有部分都是可选的,如果需要,可以留空。

    您还可以将for循环描述为while循环:

    for (A;B;C) {
        D;
    }
    

    与:

    相同
    A;
    while (B) {
        D;
        C;
    }
    

答案 1 :(得分:3)

让我们逐步完成您的代码:

  1. 我们设置int,初始值为0,并将其分配给sum
  2. 我们设置for循环,设置int k = 1,我们将在k小于10时循环,并且在每次迭代后,2将添加到k
  3. 所以,第一次迭代k = 1sum目前等于0,所以sum += k实际上是0 = 0 + 1 = 1.你得到的是1。

    对于第二次迭代,k = 3sum目前等于1,因此sum += k实际上是1 = 1 + 3,即4。显示的是4。

    对循环的其余部分重复此操作!

答案 2 :(得分:2)

在循环的第一次迭代中,k=1k+=2仅在循环的下一次迭代开始时运行。循环变量更新条件(for循环的最后一部分 - 即k+=2部分)从不在第一次迭代中运行,但在开始时每隔一次运行。因此,你拥有的是:

迭代1:

k=1
sum = 0 + 1; //so sum = 1

迭代2:

k=1+2 // so k=3
sum = 1 + 3 // so sum = 4

迭代3:

k=3+2 //k=5
sum = 4 + 5 //sum=9

等...

答案 3 :(得分:2)

它是这样的:

  1. 初始化(k = 1)

  2. 检查条件(k <10)(如果错误则停止)

  3. 在循环中运行代码(sum + = k并打印)

  4. 增量(k + = 2)

  5. 从第2步开始重复

  6. 遵循这个逻辑,你首先打印1。

答案 4 :(得分:2)

最后一个条件,k += 2在循环的第一次迭代后发生

所以它是

k = 1, sum = 1
k = 3, sum = 4
k = 5, sum = 9
k = 7, sum = 16
k = 9, sum = 25

答案 5 :(得分:2)

k仅在循环迭代后递增。通常对于任何循环,值在循环迭代后更新,因此k变为1,3,5,7,9,因此总和是正确的。

答案 6 :(得分:1)

哦相信我有同样的问题。而且你必须快速理解这一点,因为当你开始进行冒泡排序时,它会让你更加困惑。

你需要理解的是,它实际上并没有将+2添加到'k',直到它在'for loop'中读完为止

所以这就是它的开始,它以你设置'k'为1的开头开始。

k = 1是否小于10?是的,然后在'for循环'中做什么。首先求和为0,然后在第一个循环中将k的值加到已有的总和中。所以 sum = 0,k = 1.因此0 +1 = 1.然后下一行输出sum与空间的值。这里是重要的部分,它现在已经到了循环的末尾。所以现在它会给k已经拥有的值增加+2。

所以k = 1 + 2 = 3.现在我们开始第二个循环。 k = 3,小于10?是的,确定在for循环中做什么。将k添加到已有总和的任何值。总和= 1对吗?和k现在等于3对吗?所以3 + 1 = 4.它显示一个空格的总和,它已到达for循环的末尾所以它将+2添加到已经有3的k,这将等于5.循环继续。

oouff希望有所帮助!所以记住它在循环结束时添加了+2。对不起,如果有一些打字错误从我的三星打字有点烦人有点因为我有日语键盘... 祝好运! 必须

答案 7 :(得分:0)

让我们分解您的代码。关键字仅表示循环。它将从@ 1开始并在k小于10时继续。它也将增加k+=2。要翻译,这意味着k = k +2

在循环sum = sum + k内。然后它将打印总和加上空格的值。

k = 1, sum = 1
k = 3, sum = 4
k = 5, sum = 9
k = 7, sum = 16
k = 9, sum = 25

并不断重复。如果你仍然无法理解这个概念,请告诉我们