求解 如下函数执行过程
int getInt(){
int i = 0;
try{
i = 1;
return i;
}
finally{
i = 2;
}
}
我试了一下 返回值是1
但是我单步调试的时候运行如下
1.i = 1
2.return i
3. i = 2
4. return i
哪位大神能给我解释一下啊/?????
------解决方案--------------------finally后面的是一定执行的。但是变量i前面没有return 关键字,所以只是把变量i重新赋值为2;你在finally里面加上return 返回值就是2了;
------解决方案--------------------先执行try块里的程序return 回i的值,为1;然后执行finally块里的程序,将变量i赋值为2;
------解决方案--------------------首先谢谢啊。
我也知道在finally里returni 就是返回2
但是,在finally里没有return的时候
程序会两次执行到try块里的return i
第二次是在finally里的i变成2 之后 又跳到了try里return i
那按理说应该函数返回的是2 啊???
------解决方案--------------------您可以单步调试一下。。。我是彻底蒙圈了