Java笔试题学习之11(try/catch/finally/return)

版权声明:欢迎转载,期待指正 https://blog.csdn.net/fighting_sxw/article/details/89841604
public class Test12 {
    public static void main(String[] args) {
        System.out.println(test() + "x");
    }

    private static int test() {
        int temp = 1;
        try {
            System.out.println(temp + "y");
            return ++temp;
        } catch (Exception e) {
            System.out.println(temp);
            return ++temp;
        } finally {
            ++temp;
            System.out.println(temp + "z");
        }
    }
}

输出:
1y
3z
2x

分析:
1、try中 先输出1y,然后将++temp的值 2 作为函数的返回值
2、因为没有异常所以不会进入catch块中
3、finally块中的语句一定会执行,所以输出3z,因为返回值 有return语句确定为2,所以这里执行++temp 对返回值没有影响
4、main方法中调用test()得到的返回值是2,所以打印2x

ps:从大佬的抖音直接搬运过来,抖音号:Todaystart,不妥之处,还望指正!

猜你喜欢

转载自blog.csdn.net/fighting_sxw/article/details/89841604