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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘学明    高级黑马   /  2013-4-22 12:21  /  6600 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘学明    于 2013-4-23 18:45 编辑

一个函数中什么时候需要用到return.

return不加参数代表什么?

return不加参数的时候什么时候可以省略?

请详细说明一下所有的情况 谢谢!

评分

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

查看全部评分

10 个回复

倒序浏览
一般的就是用在有反回值(非void类型)的方法中,用来返回方法指定类型的值,并且返回值类型必须与方法指定类型相同,同时结束方法执行;也可以用在返回值为void的方法中,用来终止方法运行;
如:   public void f()
{      
    for(int i=0;;i++)
   {         
      if(i==3)
        {            
           return;        
       }
        else
          {            
             System.out.println(i);        
          }   
   }   
}

评分

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

查看全部评分

回复 使用道具 举报
1.可以在具有对象引用返回类型的方法中返回null   public Button doStuff(){      return null;   }2.数组是完全合法的返回类型   public String[] go(){      return new String[]{"wangsan","wangsan","wangsi"};   }3.在具有基本返回类型的方法内,可以返回任何值或变量,只要他们可以隐式转换成所声明的返回类型   public int foo(){       char c=‘c’;       return c;//char可以转化成int    }4.在具有基本返回类型的方法内,可以返回任何值或变量,只要他们可以显示强制转换成所声明的返回类型(这个不举例子了)5.也可以用在返回值为void的方法中,用来终止方法运行;如:   public void f(){      for(int i=0;;i++){         if(i==3){            return;         }else{             System.out.println(i);         }      }   }6.在具有对象引用返回类型的方法内,可以返回任何值或变量,只要他们可以隐式转换成所声明的返回类型(通过is-a测试即可)   public Animal getAnimal(){      return new Dog();//只要Dog继承Animal即可   }

点评

额。。你这格式 看起来不方便  发表于 2013-4-22 14:06
回复 使用道具 举报
每个方法上都有一个返回类型的,比如public int sum(){}这个方法的返回类型是int型,那么这个函数在结束时就应该返回一个int型的数值实际上就是这个函数的的答案。比如
public int sum()
{
    return 1;
}
就相当于这个方法就等于1如(  public int sum(){return 1;}  )=1   。  当return不加参数的时候仅代表这个函数结束,没有返回任何数值。 只有在方法的返回类型为 void的时候才可以省略。如
public  void print()
{
    System.out.println("hehe");
}
就不用加return,希望这样说你能够懂一点儿。

评分

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

查看全部评分

回复 使用道具 举报
函数申明的返回值类型是什么函数中就return回什么类型。
若为void则可以不用return
return 不加参数其实返回的是空值,即   return null;
总之只要返回值是void就可以不用写return,其他时候都要写return

评分

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

查看全部评分

回复 使用道具 举报
return一般使用在有返回值的方法中,返回方法声明中的数据类型,一般在主方法中有相应的数据变量接收。
return在返回值为void的方法中的使用,是为了根据方法设计者的需求来终止程序。java程序中有两个可以终止程序继续运行的语句一个是return,
还有一个是throw new RunTime Exception();,程序执行到这里就会自动返回调用的地方去。
在2楼提到的终止for循环的使用return很少见,一般都用break;,但是双层或者多层for循环中return是非常有用的,它可以直接终止掉整个循环,而break只能终止内层
或者外层的单一循环。比如:
public class ReturnDemo {
        public static void main(String[] args) {
                function();
        }

        private static void function() {
                for(int x=0;x<100;x++){
                        for(int y=0;y<200;y++){
                                if(x==50){
                                        return;
                                }else{
                                        System.out.println(x+y);
                                }
                        }
                }
               
        }

}

评分

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

查看全部评分

回复 使用道具 举报
第一个问题什么时候需要用到return:当你的方法需要有返回值得时候,需要在你的方法内部加上return语句。
例如你求和,最后有个运算结果需要返回来供其他函数使用,那么这是需要return
也即,当你的函数上返回值类型不是void的时候,函数内部都要有return返回值。
第二个问题return不加参数代表什么?:当在方法内部有多种情况时,返回各种不同的值。但最后程序可能为了严谨,加上return;即返回空,为了是前面各种情况都不成立是有个返回值。或者是希望程序在此情况下停掉,所以返回空。
第三个问题:return不加参数的时候什么时候可以省略?:一般情况最好写上。为了是程序的严谨。
回复 使用道具 举报
1.可以在具有对象引用返回类型的方法中返回null  
public Button doStuff()
{      return null;  
}
2.数组是完全合法的返回类型   
public String[] go()
{      return new String[]
                           {"wangsan","wangsan","wangsi"
                           };   
}
3.在具有基本返回类型的方法内,可以返回任何值或变量,只要他们可以隐式转换成所声明的返回类型   
public int foo()
     {       char c=‘c’;       return c;//char可以转化成int   
     }
4.在具有基本返回类型的方法内,可以返回任何值或变量,只要他们可以显示强制转换成所声明的返回类型(这个不举例子了)
5.也可以用在返回值为void的方法中,用来终止方法运行;如:   
public void f()
{      for(int i=0;;i++)
         {         if(i==3)
               {            return;        
                }
          else
               {             System.out.println(i);        
               }     
        }   
}
6.在具有对象引用返回类型的方法内,可以返回任何值或变量,只要他们可以隐式转换成所声明的返回类型(通过is-a测试即可)  
public Animal getAnimal()
{      return new Dog();//只要Dog继承Animal即可   
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
黄玉昆 黑马帝 2013-4-22 21:35:06
9#
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
return是一条语句执行到这里的时候就结束的标志,当返回类型是void时,则不需要返回值,也可以省略!仅仅表示一个结束语句。
当返回一个具体类型时,则必须返回一个相同类型的值。
还有一种情况是关于return 与finally谁的值先输出的问题,如果不懂,可以继续提问,接下来我可以以实例的方式帮助解答。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马