解释这个循环给我(基本的java)?

chl*_*hlc 0 java while-loop

当以下代码完成执行时,z的值是多少?

int x;
int y;
int z;

x = 1;
z = 1;

while (x <= 5)
{
  z = z + x;
  x = x + 1;
}
Run Code Online (Sandbox Code Playgroud)

我知道答案是16但我在尝试计算时遇到了错误.我觉得我一开始就搞乱了循环中的一步.我知道我可以将它插入一个java客户端并得到答案,但我真的想了解循环序列,以便能够手工完成.

Cᴏʀ*_*ᴏʀʏ 5

要真正理解它,就像计算机一样思考.写出while循环对每次迭代中的每个变量要做的事情.我省略了y因为它似乎没有用于任何东西.

                x |  z | (x <= 5) | z + x | x + 1
               ===+====+==========+=======+======
Initial:        1 |  1 |          |       |     
               ===+====+==========+=======+======
Iteration 1:    1 |  1 | true     |     2 |     2
Iteration 2:    2 |  2 | true     |     4 |     3
Iteration 3:    3 |  4 | true     |     7 |     4
Iteration 4:    4 |  7 | true     |    11 |     5
Iteration 5:    5 | 11 | true     |    16 |     6
Iteration 6:    6 | 16 | false    |       |
               ===+====+==========+=======+======
Final values:   6 | 16 |          |       |
Run Code Online (Sandbox Code Playgroud)

x等于时6,测试x <= 5评估为false,所以我们打破了循环.现在,最后,我们可以看到z = 16.