while循环中的post增量操作(java)

时间:2015-07-28 00:42:29

标签: java loops while-loop

最近我遇到了这个问题

int i = 10;
while (i++ <= 10) {
    i++;
}
System.out.print(i);

答案是13,有人可以解释一下13是怎么回事?

2 个答案:

答案 0 :(得分:8)

  • i = 10.看看我,比较10
  • i = 10. 10&lt; = 10,因此进入循环。
  • i = 10.增量i(根据while表达式)
  • i = 11.在循环中,递增i
  • i = 12.看看我,比较10
  • i = 12. 12不是&lt; = 10,所以不要进入循环。
  • i = 12.增量i(根据while表达式)
  • i = 13

答案 1 :(得分:0)

这是我可以解决这个问题的另一种方法。 让f(ref i)成为一个函数,它通过引用接受i并将其值增加1.所以f(ref i) = i + 1

现在我们已经f(ref i),上面的代码可以写成

int i = 10
while( (f(ref i) -1) <=10 )
{
   f(ref i);
}

我会在返回时用等效的i值替换f(ref i),并得到像

这样的答案
while(11 - 1 <= 10) {12}
while (13 -1 <= 10) -> break;

所以我= 13。