最近我遇到了这个问题
int i = 10;
while (i++ <= 10) {
i++;
}
System.out.print(i);
答案是13,有人可以解释一下13是怎么回事?
答案 0 :(得分:8)
答案 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。