【问题标题】:Tracking the final variable value in for loops when code is executed在执行代码时跟踪 for 循环中的最终变量值
【发布时间】:2015-12-13 22:47:02
【问题描述】:

我知道答案是 9,但是当我尝试在纸上解决这个问题时,我一直得到答案是 6。我需要知道代码运行时发生了什么。尤其是一开始,第二个 for 循环是假的,因为 x 不小于 y。

上面的代码执行时会打印什么值?

int w = 0;
for (int y = 0; y < 5; y++)
{
    w = y - 1;
    for (int x = 1; x < y; x++)
    {
        w = w + x;
    }
}
System.out.println(w);

【问题讨论】:

  • 执行后得到了什么?您是否尝试过逐行浏览代码以查看执行了什么?它也可能有助于您解释您如何获得 6 以及您认为该程序将如何获得 9
  • 编译器运行代码时,结果为 9。但是,当我尝试在纸上查看时,最终得到 6。我不太明白编译器。

标签: java variables for-loop


【解决方案1】:

唯一重要的循环是最后一个循环,因为循环的第一部分设置了w,而不关心它之前的值:y = 4

所以w = 3

然后是一个循环,将 1 2 和 3 添加到 w。

  • w = 3 + 1 -> w=4
  • w = 4 + 2 -> w = 6
  • w = 6 + 3 -> w = 9

【讨论】:

  • 谢谢!这很有帮助!
猜你喜欢
  • 2011-12-23
  • 2016-07-20
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多