问:简单的循环跟踪

时间:2016-01-07 14:59:57

标签: java trace

我不确定" num2"会发生什么,我几乎可以肯定" num1"每个数字1-4的次数每次1-4次,但我不知道" num2"

int num1 = 0;
int num2 = 0:

for (var i = 0; i <= 4; i++){
          num1 = i * i;
          num2 += num1;
          System.out.println(num1 + " ");
} 
System.out.println(num2);

所以我的问题是&#34; num2&#34;的痕迹是什么? 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

在这种情况下,以下情况属实:

num1将等于索引的任何值,乘以它自己。因此,当i从0开始运行时,它将在0,1,2,3和4上运行,直到它小于或等于4。

因此,num1将是:

1) 0 * 0 = 0
2) 1 * 1 = 1
3) 2 * 2 = 4
4) 3 * 3 = 9
5) 4 * 4 = 16

然后num2只计算每个的总和,即:

0 + 1 + 4 + 9 + 16 = 30

这将分解为:

Before for loop:
num2 = 0

1) num2 = 0 + 0 = 0
2) num2 = 0 + 1 = 1
3) num2 = 1 + 4 = 5
4) num2 = 5 + 9 = 14
5) num2 = 14 + 16 = 30

这是通过向目前的总数添加num1来实现的。

希望这有点澄清。

修改

正如sharonbn所提到的,var不是java中的有效类型,这应该是&#39; int&#39;。

另外,你有:

int num2 = 0:

这里以冒号(:)结束,这应该是一个分号(;)。