黑马程序员技术交流社区

标题: return的应用 [打印本页]

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

作者: 王进亮    时间: 2012-12-22 14:46
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值,方法就有了返回值.


作者: 郑广昌    时间: 2012-12-22 14:51
谢了,受教!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2