为什么for循环输出这个?

时间:2014-01-12 20:54:35

标签: java for-loop iteration

我对这个作业问题非常困惑。我不明白为什么 i sum 的值会以这种方式出现。我只是不明白这里算法的概念,有人可以解释一下吗?

int i = 0;
int sum = 0;
for(i=0; i < 5; i++)
{
    sum += i;
}
System.out.println(i + "\n" + sum);

输出结果为:

5
10

----jGRASP: operation complete.

5 个答案:

答案 0 :(得分:7)

  • 5 - 因为有5次迭代
  • 10 - 因为总和是10:)

萨姆

Iteration 1: 0 + 0 = 0
Iteration 2: 0 + 1 = 1
Iteration 3: 1 + 2 = 3
Iteration 4: 3 + 3 = 6
Iteration 5: 6 + 4 = 10

验证码

int i = 0;
int sum = 0;
for (i = 0; i < 5; i++) {
    System.out.println(String.format(
        "Iteration %s: %s + %s = %s", (i + 1), sum, i, (sum + i)));
    sum += i;
}

答案 1 :(得分:3)

此代码:

  int i = 0;
  int sum = 0;
  for(i=0; i < 5; i++)
  {
     sum += i;
  }
  System.out.println(i + "\n" + sum);

sum输出:0 + 1 + 2 + 3 + 4,等于10,i迭代次数= 5.

答案 2 :(得分:3)

您创建了一个变量i,其值为0,然后在for循环中将其递增5次。因此,i的值为5

现在,sum的值为0+1+2+3+4,即10

答案 3 :(得分:2)

因为你遍历你的循环,这使得i == 5,然后打印它,

总和如下所示,您将i添加到先前计算的总和

0 + 1 = 1 
1 + 2 = 3
3 + 3 + 6
6 + 4 = 10

尝试将你的打印命令放入循环中,你可以更好地看到正在发生的事情。

答案 4 :(得分:1)

唯一不明显的事情是(在我看来):i将是5,因为你使用i++,即使身体没有,也会将i增加1在最后一次迭代后执行。身体i内部最多只能有4个。

int sum = 0; int i = 0;
for (i = 0; i < 5; i++)
{
    sum += i;
    if (i == 5)
        System.out.println("never executed");
};

其他答案告诉其他事情。