return语句

      版权声明:本文为博主原创文章,未经博主允许不得转载。          https://blog.csdn.net/yangxingpa/article/details/80752144        </div>
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
                          <div id="content_views" class="markdown_views">
        <!-- flowchart 箭头图标 勿删 -->
        <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
          <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
        </svg>
        <h1 id="java知识点return语句结束语句"><a name="t0"></a>Java知识点——return语句,结束语句</h1>

1 return语句

参考学习:java 内return语句总结

return语句作为一个无条件的分支,无需判断条件即可发生。
return语句:是指结束该方法,继续执行方法后的语句。

return语句主要有两个用途:

  1. 一方面用来表示一个方法返回的值(假定没有void返回值);
  2. 另一方面是指它导致该方法退出,并返回那个值。根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有个结束标志,因此,return起到了这个作用。

在返回类型为void的方法里面,有个隐含的return语句,因此,在void方法里面可以省略不写。

2 return语句和其他控制结束语句的区别

Java中结束语句主要有四类:return,break,continue以及goto。但是goto不常用。

(1)return语句:是指结束该方法,继续执行方法后的语句。

(2)break语句:是指在循环中直接退出循环语句(for,while,do-while,foreach),break之后的循环体里面的语句也退出。

(3)continue语句:是指在循环中中断该次循环语句(for,while,do-while,foreach),本次循环体中的continue之后语句不执行,直接跳到下次循环。

3 关于java中的try-catch-finally语句和return

参考学习:关于java中的try-catch-finally语句和return

第一:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回)

第二:finally里面不建议放return语句,根据需要,return语句可以放在try和catch里面和函数的最后。可行的做法有四:

1.return语句只在函数最后出现一次。

2.return语句仅在try和catch里面都出现。

3.return语句仅在try和函数的最后都出现。

4.return语句仅在catch和函数的最后都出现。

注意,除此之外的其他做法都是不可行的,编译器会报错。

(1)如果程序运行到try成功时可以返回结果,则采用方法2。
(2)如果程序运行到catch时(即中途出错时)无需再继续执行后面的代码了,则采取方法4;
(3)如果程序运行到try或catch时还需要继续执行后面的代码,则采取方法1。

4 returnwhile等循环判断语句

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


public int locate(){
        while (isTrue())
            return 4;
    }
 boolean isTrue(){
    return true;
  }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

public int locate(){
    while (isTrue())
        return 4;
    return 0;
}
boolean isTrue(){
    return true;
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值