版权声明:本文为博主原创文章,未经博主允许不得转载。 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
语句主要有两个用途:
- 一方面用来表示一个方法返回的值(假定没有void返回值);
另一方面是指它导致该方法退出,并返回那个值。根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有个结束标志,因此,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 return
与while
等循环判断语句
编译器认为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值,方法就有了返回值.