2014-01-12 307 views
-3

我只是很困惑,从这个作业问题。我不明白为什么总和这样的值出来。我只是不明白这里的算法的概念,有人能解释一下吗?为什么for循环输出这个?

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. 
+6

你在这里不了解什么部分? –

+2

打印出循环内的i值和总和,看看它们是如何变化的。 – OldProgrammer

+1

0 + 1 + 1 + 1 + 1 + 1 = 5 ='i'。 0 + 0 + 1 + 2 + 3 + 4 = 10 ='sum'。 – David

回答

6
  • 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; 
} 
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

的数量
3

您已创建一个值为0的变量i,然后在for循环中将其增加5次。所以你的i的值为5

现在和的值是0+1+2+3+4这是10

1

因为你通过你的循环,这让我== 5,然后打印迭代,

点心去如下,您要添加到我先前计算的总和

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

试着把你的打印命令放到循环中,他们你可以更好地看到发生了什么。

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"); 
}; 

其他答案告诉其他事情。