【问题标题】:java variable holds wrong value after increment in loop [duplicate]java变量在循环中增加后保持错误的值[重复]
【发布时间】:2018-04-19 18:23:33
【问题描述】:
int x;

for(x=1;x<10;x++);

System.out.println(x);

输出是10,我认为for 循环应该给x 一个值9,因为循环的条件是x&lt;10。我错过了什么?

【问题讨论】:

  • 因为到底是;
  • 你用1初始化x,并在每次迭代中将x增加1。你继续,只要x &lt; 10。因此,要终止,x &gt;= 10。因为你增加了1x == 10
  • @YCF_L 我认为分号是 OP 真正想要的。他/她对循环终止后x == 10 而不是x == 9 感到眼花缭乱。
  • 这就是为什么我们通常将循环变量的范围限制在循环本身;)无论如何,如果您想要 9,那么您的代码的较短版本将是 int x = 9 :P

标签: java loops for-loop


【解决方案1】:

x &lt; 10false 时循环结束。当x10 时会发生这种情况。请记住,循环执行以下操作:

  1. 初始化x=1
  2. 检查x &lt; 10:
    • 如果true 则执行循环体并递增x
    • 如果false 则跳出循环,保留x 的当前值
  3. 重复 (2.)

所以导致循环退出的x 的值是10,因为这是循环中x 的第一个值,其中x &lt; 10false

【讨论】:

  • 要使x 在循环之后恰好是10,您需要将x 恰好增加1
猜你喜欢
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 2020-01-21
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2018-10-11
相关资源
最近更新 更多