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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑广昌 中级黑马   /  2012-12-22 14:39  /  1150 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以为return一直应用在函数里,后来在循环中也见到了return语句
有一道题是让用break结束循环语句,然后用return尝试达到相同功能
我就定义了个函数,内有return,调用函数也实现了,但是总感觉用的不太好,想  求解,return的灵活用法

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
Java中的return语句总是和方法有密切关系,return语句总是用在方法中,有两个作用,一个是返回方法指定类型的值(这个值总是确定的),一个是结束方法的执行(仅仅一个return语句)。

以下是无返回值的情况:

?public void test1() {  
       System.out.println("---------无返回值类型的return语句测试--------");  
       for (int i = 1; ; i++) {  
           if (i == 4) return;  
           System.out.println("i = " + i);  
       }  
   }
当i=4时,循环结束..

return有一个特性就是一旦调用return 那么直接结束方法.

有如下例子:

?public int locate(){
        while (true)
return 4;
    }
以上代码是不会报错的,


?public int locate(){
        while (isTrue())
return 4;
    }
boolean isTrue(){
    return true;
  }

这段代码却会报错, 这是因为编译器认为while语句有在任何情况下都能执行的能力,但是只在入参为true的情况下有该能力。JVM不知道当istrue为假的时候该怎么办,所以报错.

在看如下代码:


?public int locate(){
        while (isTrue())
return 4;
        return 0;
    }
     boolean isTrue(){
            return true;
          }

这段代码也不会报错,因为添加了return 0;虽然说JVM不知道当istrue为假的时候该怎么办,但是仍然会返回0值,方法就有了返回值.

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
谢了,受教!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马