黑马程序员技术交流社区

标题: break和return都是跳出的意思,但详细区别有哪些呢? [打印本页]

作者: ZHAOWEI    时间: 2014-5-10 17:32
标题: break和return都是跳出的意思,但详细区别有哪些呢?
本帖最后由 ZHAOWEI 于 2014-5-13 20:55 编辑

break和return都是跳出的意思,但详细区别有哪些呢?昨天刚学的,练习的一天,没感觉出来什么时候该用哪个,求解答。
作者: 时光♪微凉    时间: 2014-5-10 18:03
break一般是跳出循坏,或是switch中的case语句,而return是跳出整个方法,例如下代码
  1. class Test{
  2.         public static void main(String[] args) {
  3.                 for (int i = 3; ; i--) {
  4.                         if(i==0)
  5.                                 break;//此处跳出循坏,打印321over
  6.                                 //return;如果是写return,则满足条件是跳出main方法,此时System.out.println("over");编译会报错,被检测为无效代码,始终不会执行的
  7.                         System.out.print(i);
  8.                 }
  9.                 System.out.println("over");
  10.         }
  11. }
复制代码

作者: 来男.    时间: 2014-5-10 18:46
本帖最后由 来男. 于 2014-5-10 18:49 编辑

1、break是跳出当前所在的循环:比如while循环,for循环。
若是嵌套循环:for()--------------------------1
                        {
                         。。。。。。。。代码块
                                for()-------------------------2
                                {
                                 。。。。。。。代码块
                                 break;
                                }
                        }
就跳出break所在的循环(2)进入外层循环(1),while同理

2、return是结束当前方法。
特殊点是:
public static void main(String[] args) {
               

                try {
                        System.out.println("A");
                        return;
                } catch (Exception e) {
                        System.out.println("B");
                }finally{
                        System.out.println("C");
                }
              System.out.println("D");
        }
结果为:AC
当程序走完A后,遇return再走finally,就不走D!!!!这是应注意的地方。


作者: ZHAOWEI    时间: 2014-5-10 19:18
来男. 发表于 2014-5-10 18:46
1、break是跳出当前所在的循环:比如while循环,for循环。
若是嵌套循环:for()-------------------------- ...

结束方法指的是结束整个函数吗?return下面的结果不是不执行了吗?
作者: 彭飞    时间: 2014-5-11 00:37
本帖最后由 彭飞 于 2014-5-11 00:40 编辑

哈哈,
好想你弄混淆了哟,

break 是跳出       跳出本循环
retrun  是返回               相同点都是结束语句

还有一个continue   它才是和break很相似的跳出的意思
continue   跳出本次循环的意思。

就拿一楼的代码来解释吧。
1、当for循环里写break的时候        会跳出for循环  【结束循环】
2、如果写    continue    for循环里面会结束【本次】 然后执行【i--】   
                循环没有结束,只是在遇见  continue 后结束了该次循环【进入下次循环】
3、如果在循环中写了return  语句  则返回 return 后面的值。

三者一定不要搞混淆了。
作者: 张辉玉    时间: 2014-5-11 01:20
楼主,break语句即满足条件时便跳出循环。且 在多层循环中, 一个break语句只向外跳出一层。
   而return  语句是直接将函数的值返回主调函数。
   比如:  在有2个for()循环中  如果在第二个循环使用break  则只能跳出一个第二个循环。还有个不能跳出。
              而使用return  则会直接将值返回给函数。而结束循环。
作者: 编程学徙    时间: 2014-5-11 04:38
下面这张图,简单说了我对这三个关键字的理解,虽不全面,但胜在容易看懂理解……求技术分……



作者: ZHAOWEI    时间: 2014-5-11 06:26
编程学徙 发表于 2014-5-11 04:38
下面这张图,简单说了我对这三个关键字的理解,虽不全面,但胜在容易看懂理解……求技术分……

你这个图太棒了,已经下载了




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