求解 如下函数执行过程

tomgu1991 2012-11-16 07:32:47
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
哪位大神能给我解释一下啊/?????
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomgu1991 2012-11-16
  • 打赏
  • 举报
回复
您可以单步调试一下。。。我是彻底蒙圈了
tomgu1991 2012-11-16
  • 打赏
  • 举报
回复
首先谢谢啊。 我也知道在finally里returni 就是返回2 但是,在finally里没有return的时候 程序会两次执行到try块里的return i 第二次是在finally里的i变成2 之后 又跳到了try里return i 那按理说应该函数返回的是2 啊???
liang8768 2012-11-16
  • 打赏
  • 举报
回复
先执行try块里的程序return 回i的值,为1;然后执行finally块里的程序,将变量i赋值为2;
liang8768 2012-11-16
  • 打赏
  • 举报
回复
finally后面的是一定执行的。但是变量i前面没有return 关键字,所以只是把变量i重新赋值为2;你在finally里面加上return 返回值就是2了;

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧