Continue ,Break,Return这三个关键字的区别

来源:互联网 发布:js实现图片3d效果轮播 编辑:程序博客网 时间:2024/05/16 02:17

前言

一般刚开始遇到这三个关键字,都会有点乱,return还好,特别是break和continue,特别容易搞混,所以这里记录一下

正文

 1、return :直接跳出当前的方法,返回到该调用的方法的语句处,继续执行

 2.   break在循环体内结束整个循环过程

 3.  continue :结束本次的循环,直接进行下一次的循环

测试

 这样说还好像还是有点不太直观,直接放代码测试一下:
 我分别为return break,continue写了三个方法,
  相同点:方法里面都是一个for循环,每次循环都会做打印,结束循环后在方法体中也会打印,方法执行结束返回主
                 函数后也有打印。
  不同点:其中在for循环中做了一个条件判断,如果i = 3时,三个方法分别执行returnbreak,continue

这样我们通过打印信息就可以看到三个关键字对于for循环执行过程的控制和当前所在方法执行过程的控制


三个测试函数:


package aa;public class Test {public static void main(String[] args) { testBreak(); testContinue();     testReturn();System.out.println("--主函数------------");}/** * break测试方法 */private static void testBreak() {for (int i = 0; i < 5; i++) {if (i == 3) {break;}System.out.println("--break------------" + i);}System.out.println("--break-------for循环外-----");}/** * continue测试方法 */private static void testContinue() {for (int i = 0; i < 5; i++) {if (i == 3) {continue;}System.out.println("--continue------------" + i);}System.out.println("--continue-------for循环外-----");}/** * Return测试方法 */private static void testReturn() {for (int i = 0; i < 5; i++) {if (i == 3) {return;}System.out.println("--return------------" + i);}System.out.println("--return-------for循环外-----");}}

break的测试打印结果


continue的测试打印结果


return的测试打印结果



结论:

    从打印可以看出:
    break:     当i = 3时,执行break后,直接到for循环外,打印--break-------for循环外-----,所以break的作用是结束
                     循环
    continue: 当i = 3时,执行continue后,没有打印接下的--continue------------3,但是下一次循环还是打印了,所以
                      continue
只是结束了本次循环,

    return:     当i = 3时,执行return后,不仅结束了循环,而且结束了方法,直接回到主函数了,所以return的作用
                      是结束了所在方法的调用

总结:

  return     : 作用于方法,结束当前方法,主要用来返回方法返回值,当方法有返回值的时候,返回对应类型的返回
                     值,没有返回值时,可以返回空,或者不返回
  continue : 作用于语法结构,结束当前方法,结束当前结构,主要用于循环的加速
  break      : 作用于语法结构,作用于结构结束当前结构,主要多用于循环和switch结构中

这里说一下,我上面说的结构,是指循环体结构结构,switch结构等,不知道怎么形容了这种东西了,哈哈,感觉语法结构咋一听也不知道是什么,解释一下哈

理解好这个三个关键字,使用这三个关键字可以提高代码的执行效率。

注意:

当前两个字,是指当前所在的结构,例如下面当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体

代码:

breakbreak
/** * break测试方法 */private static void testBreak1() {for (int i = 0; i < 5; i++) {switch (i) {case 3:break;default:System.out.println("--switch------------" + i);}System.out.println("--for---------------" + i);}System.out.println("----------for循环外-----");}

打印结果:












0 0
原创粉丝点击