黑马程序员技术交流社区

标题: break,continue,return的区别 [打印本页]

作者: 闫月乐    时间: 2013-6-6 22:07
标题: break,continue,return的区别
本帖最后由 闫月乐 于 2013-6-7 20:47 编辑

return是不是结束整个类啊?
麻烦大家结合点程序帮我总结一下这三个的区别,我有点分不清了……谢谢

作者: 郑锐    时间: 2013-6-6 22:18
break:结束整个循环
continue:结束当次循环,直接执行下次循环。
return:结束函数,如果是在嵌套循环内层循环里,可以直接结束内层和外层循环。
作者: 张歆明    时间: 2013-6-6 22:28
break: 结束整个循环 但是 还能够使用在switch case的case语句中 这是break语句的一个特点
continue:结束本次循环
return 无论咋样 只要出现的方法(也叫函数)的某个位置,一旦被执行到,就标志这个方法运行结束,返回到调用这个函数的函数的下一条执行语句
作者: 花心々小土豆    时间: 2013-6-6 22:39
public class Test8 {
        public static void main(String[] args) {
                printNum1();                                //调用printNum1()
                printNum2();                                //调用printNum2()
        }
        //使用break跳出打印循环
        public static void printNum1(){
                /*
                 * 打印1-100,并用制表符隔开
                for(int i=1;i<=100;i++){
                        System.out.print(i);
                        System.out.print('\t');
                }               
                */
                //当打印到98时用break跳出循环
                for(int i=1;i<=100;i++){
                       
                        System.out.print(i);
                        if(i==98)        break;
                        System.out.print('\t');
                }
                System.out.println();
        }
        //使用return结束打印循环
        public static int printNum2(){
               
                for(int i=1;i<=100;i++){
                        System.out.print(i);
                        if(i==98)        return 0;
                        System.out.print('\t');
                }       
                return 1;
        }
}
break:结束这个循环,继续循环语句下面的语句;
continue:结束本次循环,放弃循环体中control下面的语句进行下次循环;
return:只要在函数值遇到它,这函数就结束了,注意函数不能声明为void
作者: 381946250    时间: 2013-6-6 22:39
本帖最后由 381946250 于 2013-6-6 22:41 编辑

break,continue,return
我理解是这样的:break,return都有结束循环的意思,不同的是break只跳出循环,不跳出方法;而return是跳出循环,并且跳出方法。
而continue语句是不再执行此次循环的剩余语句,直接回到循环的其实出,继续循环。
举例说明break,return的区别:
  1. public class test3 {

  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub

  4. breakOut();//通过使用break关键词,使得程序在打印到8时退出
  5. returnOut();//使用return关键词,使得程序在打印到8时退出

  6. }

  7. public static void returnOut() {
  8. // TODO Auto-generated method stub
  9. for (int r = 0; r <=10; r++) {
  10. System.out.print(" re="+r);
  11. if (r==8) {
  12. return;
  13. }
  14. }
  15. System.out.println(" over");//使用return关键字,跳出循环,并且跳出方法,over不打印。
  16. }

  17. public static void breakOut() {
  18. // TODO Auto-generated method stub
  19. for (int b = 0; b <=10; b++) {
  20. System.out.print(" br="+b);
  21. if (b==8) {
  22. break;
  23. }
  24. }
  25. System.out.println(" over");//使用break关键字,只跳出循环,不跳出方法,over打印。
  26. }

  27. }
复制代码
运行结果是:
  1. br=0 br=1 br=2 br=3 br=4 br=5 br=6 br=7 br=8 over
  2. re=0 re=1 re=2 re=3 re=4 re=5 re=6 re=7 re=8
复制代码
可以看出使用break只是跳出循环,方法中的System.out.println(" over")语句被执行,
而使用return关键字,不但跳出循环,连方法中的System.out.println(" over")语句都没有执行。



作者: 花心々小土豆    时间: 2013-6-7 08:38
花心々小土豆 发表于 2013-6-6 22:39
public class Test8 {
        public static void main(String[] args) {
                printNum1();                                //调用printNum1()

昨晚写的有点点问题,return可以出现在void类型的函数中。void类型的函数函数体最后有一条隐式的语句就是  return;
作者: 孔雀东南飞    时间: 2013-6-7 18:42
本帖最后由 孔雀东南飞 于 2013-6-7 18:47 编辑

楼主:
1、break有两种情况:
    一:在循环中,有语句: break;     这里表示跳出当前循环,即break所在循环结束,但是该循环后面的代码还是会执行的。
    二:跳出指定循环,就是为一个循环做标签,break 标签名;,表示跳出用标签标出的那个循环,但那个循环后面的内容还能执行。
        w:for(int x=0;x<=9;x++)
            {
                   for(int y=0;y<3;y++)                  
                  {
                            System.out.println("d");
                           // break;   若是此语句,表示跳出所在循环,红色标出的
                            break w;//跳出w循环
                   }
            }
2、continue有两种情况
    一:表示,循环中有语句:continue;    程序执行到continue时,continue后面的语句不执行了,开始下一轮循环。
    二:给循环做标签,循环中有语句:continue  标签名;  程序执行到这里时会跳过用标签标注的循环的当前循环,并开始下一轮循环。

          for(int y=1;y<=x;y++)
            {
                if(y%2==1)  
                    continue;//结束当前循环,并开始下一次循环
                System.out.print(y);
            }


          w:for(int x=0;x<=9;x++)
            {
                    q:for(int y=0;y<3;y++)
                    {
                            System.out.println("d");
                           
                            continue w;//终止w该次循环,继续下一次循环。
                    }
            }
3、return,程序结束。
     注意:语句 return;单独存在时表示程序结束;但是在有返回值的方法时,会有语句  return  返回值;  千万别以为真个程序结束了。
            for(int y=1;y<=x;y++)
            {
                System.out.print(y);
                 return;//表示程序结束
            }



            public int sum(int a ,int b)
            {
                    return a+b;//这里表示返回a+b的值,不是整个程序结束。
             }


作者: 穆玉明    时间: 2013-6-7 18:56
第一:break语句通常用在循环语句和开关语句中,当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起,即满足条件时便跳出循环

第二:continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。
第三: return语句是将函数的值返回主调函数。
作者: 闫月乐    时间: 2013-6-7 20:46
哇,一天没看,这么多好心人,谢谢大家




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