A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高阳 中级黑马   /  2013-1-5 15:41  /  2773 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        public static void main(String[] args) {
                //创建x,y,并赋值为int类型
                int x=5;
                int y=0;
                //调用fun()方法返回类型为int
                int i=fun(x,y);
                //输出i
                System.out.println(i);
        }

        private static int fun(int i,int y) {
                //创建一个变量s
                int s=21;
                //fianally,只有在try,catch时能时候用
                try{
                        System.out.println("嘿嘿");
                }
                catch (Exception e){
                        return s;
                }
                finally{
                        //给S重新赋值
                        s=12;
                        System.out.println("执行fianally");
                }
               
        }
在catch中已经返回值了,为什么还要有返回,不然会报错,这个类没什么实际意义,只是一个测试类,以前我明白,现在真忘了

评分

参与人数 1技术分 +1 收起 理由
邵天强 + 1

查看全部评分

5 个回复

倒序浏览
fun方法需要一个int型的返回值,目前只有catch块里才有return语句,但是程序不一定走进catch代码块里。
解决方法是你在try里或者finally里也写一句return。
不过正确的编程习惯应该是每个方法只有一个返回点,通过不同的逻辑设置不同的返回值。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
刘子义 发表于 2013-1-5 15:53
fun方法需要一个int型的返回值,目前只有catch块里才有return语句,但是程序不一定走进catch代码块里。
解 ...

谢谢,也就是说程序肯定会走的里面放return就没问题,可能走的里面放return是不行的是吗
回复 使用道具 举报
gaoyang525445 发表于 2013-1-5 16:27
谢谢,也就是说程序肯定会走的里面放return就没问题,可能走的里面放return是不行的是吗 ...

嗯,所以最好把return写在方法体的最后,而且尽量保证一个方法里只存在一个return语句,这样代码清晰便于维护
回复 使用道具 举报
学习了。。。。。。。
回复 使用道具 举报
        private static int fun(int i,int y) {
        //创建一个变量s
        int s=21;
        //fianally,只有在try,catch时能时候用
        try{
                System.out.println("嘿嘿");
        }
        catch (Exception e){
                return s;
        }
        finally{
                //给S重新赋值
                s=12;
                System.out.println("执行fianally");
        }
        return s;
        }



返回值写在外面是可以的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马