本帖最后由 马小龙 于 2012-9-16 09:45 编辑
下面一段代码- package com.itheima;
- public class Test {
-
- private int x = 2;
- public static void main(String[] args) {
- Test t = new Test();
- t.test();
- System.out.println("-----------mian------------"+t.x);
-
- }
- public int test(){
-
- try {
- ++x;
- System.out.println("-----------try------------"+x);
- return x;
- } catch (Exception e) {
- throw new RuntimeException();
- } finally{
- x++;
- System.out.println("-----------finally------------"+x);
- }
-
- }
- }
复制代码 执行结果是:
-----------try------------3
-----------finally------------4
-----------mian------------4
问题:在视频中讲解return语句是立刻返回调用者处, 在以上代码执行try代码块时,遇到return语句时,应该立刻返回到main函数,此时返回x的值应该是3,为什么打印结果显示finall在return前执行,返回到main函数x的值为4
|