A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vipzh 中级黑马   /  2012-12-2 17:41  /  3736 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

break和continue它们都可以用来跳出当前循环,它们有哪些区别?

22 个回复

倒序浏览
continue终止当前循环,继续下一循环,还在当前循环中

break中断循环进行,并跳出该循环

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
何伟 来自手机 中级黑马 2012-12-2 19:04:23
藤椅
break是跳出循环语句,continue只是停止本次循环,循环语句还会继续执行

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
break终止当前循环语句的执行,还可以用来终止switch语句
      
continue结束所在循环的本次执行,只能用在循环语句中

例如:在for循环中使用了break,那么就跳出整个for循环。而使用了continue则是跳出本次循环,继续下次循环仍然在for循环中

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
break和continue的使用
1、语句功能
    1> break强制退出循环(当前循环)
    2> continue提前结束本轮循环体的执行,跳到下一次循环
2、原理
      
       ↓←←←←←←←←←←←←←←
                                  ↑               
                               continue        
                                                
循环条件 true 循环体 →→→→→
                                 
       ↓←←  break  ←←←
      
   false
      
      

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
补充一点.continue可以跳出本次循环的特征.可以配合标签.做到自由控制流程跳转的效果.
回复 使用道具 举报
补充一点.continue可以跳出本次循环的特征.可以配合标签.做到自由控制流程跳转的效果.
回复 使用道具 举报
break:是表示结束当前的循环体。
continue:是表示结束满足本次条件的循环。当它后面使用标示时,表示的是结束符合条件的循环,然后在进入下一次的循环。
break是终止,而continue是跳出满足条件的本次循环。不要弄混淆了

示例:
   outer: for (int i = 1; i <4; i++)
       {
   inner: for (int j = 1; j < 4; j++)
          {
                if (j==2)
             {
                continue outer;
             }
         System.out.println(i+"  "+j);
   }
   continue后面不使用outer时,
结果是:
1  1
1  3
2  1
2  3
3  1
3  3
当后面使用outer时,结果为:
1  1
2  1
3  1
看下,好好体会下

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
break 跳出循环,并终止循环.
continue 跳出当前循环,继续下次

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 张向辉 于 2012-12-3 14:28 编辑

continue 是跳出当前循环,并继续进行条件改变,判断再循环;
break 终止循环,跳出循环体。
class  continuebreak
{
        public static void main(String[] args)
        {
                for(int i=0;i<6;i++)
                {
                        if(i==2)//当判断为2时,此层循环结束,continue之后代码不再执行,然后执行i++,即进入循环体再判断
                                continue;
                        System.out.print(i);
                }
                System.out.println();
                for(int i=0;i<6;i++)
                {
                        if(i==2)//当判断为2时循环结束
                                break;
                        System.out.print(i);
                }
        }
}
打印结果是:
01345
01
                  

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
break是结束循环
continue是结束本次循环,进入下一循环;
比如
for(i=1;i<=10;i++)
{
if(i=4)break/continue
}
如果是break那么当循环到i=4的时候,就不再循环了,跳出如果是continue那么当循环到i=4的时候,就不执行i=4的操作了,跳出本次循环,执行i=5
回复 使用道具 举报
break语句 (强行结束循环)
  break语句作用:1、可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。2、使流程跳出switch结构
注意:break语句不能用于循环语句和switch语句之外的任何其他语句中
continue语句作用:结束本次循环,即忽略循环体中continue语句下面尚未执行的语句,接着进行下一次是否执行循环的判定。
注意:continue语句不能用于循环语句之外的任何其他语句中
continue语句和break语句的区别:
   continue语句只结束本次循环,而不是终止整个循环的执行。
   break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。break语句可以用在循环语句和switch语句中。在循环语句中用来结束内部循环;在switch语句中用来跳出switch语句。
注意:循环嵌套时,break和continue只影响包含它们的最内层循环,与外层循环无关。
回复 使用道具 举报
break退出当前循环;
continue是退出本次循环,进入下一次循环。
回复 使用道具 举报
continue:跳出本次循环,接着下一次条件判断,再循环;
break: 终止循环,跳出循环体。以后的循环将不再执行,这是两者的根本区别。
回复 使用道具 举报
这个可以重新看下毕老师基础教程第三天(10)的内容。
出现break,那么肯定会结束循环,跳出循环体。
continue结束本次循环,继续下次循环。

break和continue.png (71.56 KB, 下载次数: 62)

break和continue.png
回复 使用道具 举报
本帖最后由 丁桂松 于 2012-12-6 05:13 编辑

好吧.回答的少.不给分.给段代码.

  1. <P>public class Monkey {

  2.         /**
  3.          * 海滩上有一堆桃子.有五只猴子来分 第一只猴子发现了桃子,将桃子分成了五份.发现多了一个.吃了,拿走了一份
  4.          * 第二只猴子也来到了海滩发现了桃子,也是将桃子分成了五份,发现多了一个.吃了,又拿走了一分, 五只猴子都是这么做的,问海滩上最初有多少个桃子.
  5.          */
  6.         public static void main(String[] args) {
  7.                 Monkey.peach();
  8.         }

  9.         public static void peach() {// 5^5 -4;
  10.                 falg: for (int j = 0;; j++) {//用falg标记外层循环.
  11.                         int count = j; // 海滩上桃子的总数
  12.                         for (int i = 0; i < 5; i++) {// 定义循环, 循环5次, 测试count是否能够分5次
  13.                                 if ((count - 1) % 5 == 0) {// 判断是否能满足吃掉1个然后再分成5分
  14.                                         count = (count - 1) / 5 * 4;// 如果可以分, 那么就改变海滩上桃子的总数, 吃1个,
  15.                                         // 分成5份, 留下4份
  16.                                 } else {// 如果不能分成5份, 跳过本次循环, 继续判断下一个数字
  17.                                         continue falg;
  18.                                 }
  19.                         }
  20.                         System.out.println(j);// 如果循环结束了, 代表成功分了5次
  21.                         break;
  22.                 }
  23.         }
  24. }
  25. </P>
  26. <P>
  27. </P>
复制代码
上面的break是跳出所有的for循环.continue 可以指定跳转的标签位置.
流程控制也可以使用return下面附代码.以XML文件操作.根据指定的标签的属性.获得他的子标签文本信息为例

回复 使用道具 举报
  1. public class TestXML {
  2.         // 查找某一个节点: 查找id为007的所有信息
  3.         @SuppressWarnings("unchecked")
  4.         public static void main(String[] args) throws Exception {
  5.                 // List<Element> list =new SAXReader().read(new
  6.                 // File(PATH)).getRootElement().elements("user");
  7.                 String PATH = "G:/workspaces/day10/src/dojoo/XMLdemo/NewFile1.xml";
  8.                 String id = "007";
  9.                 Document document = new SAXReader().read(PATH);
  10.                 Element rootelement = document.getRootElement();
  11.                 List<Element> list = rootelement.elements("user");
  12.                 for (Element element : list) {
  13.                         String xmlID = element.attributeValue("id");
  14.                         if (id.equals(xmlID)) {
  15.                                 String name = element.elementText("name");
  16.                                 String password = element.elementText("password");
  17.                                 System.out.println(name + ":" + password);
  18.                                 return;
  19.                         }
  20.                         System.out.println("无法获取信息!");
  21.                 }
  22.         }
  23. }
复制代码
程控制也可以使用return下面附代码.以XML文件操作.根据指定的标签的属性.获得他的子标签文本信息为例
如果这里使用break跳转将导致因为顺序结构的关系.下面的System.out.println("无法获取信息!");也会执行.因此使用return
回复 使用道具 举报
1、break 语句在循环(for、for in,……)和switch等具有迭代选择特征的语句中使用,而且是终止最近的封闭代码块(即多重循环时,它只终止自己所在的循环),整体代码接在break语句后继续执行(如果break语句不是最后一行代码的话)。

2、continue语句与break语句使用场合类似,continue语句是不可以在单独的switch语句中使用,但可以在一个循环内的switch语句中使用。含有continue的迭代语句(或者叫循环语句),在遇到continue语句后,代码先不按照常规的从上往下的代码执行顺序执行,而是马上回到循环入口转入下一次循环。

3、break和continue语句在循环内的switch语句中使用时,是有些区别的。break是跳出本switch,switch后面的代码继续执行,而continue是不执行switch后的代码,可以理解为跳出循环,接着进入下一次循环。分别测试下面代码使用break和continue两种情况的输出,如果使用continue,你会发现程序找到Microsoft后,document.write代码不执行了,输出结果就比使用break少了一行。
回复 使用道具 举报
break跳出循环,执行循环语句后面的内容,continue仅跳过本次循环,进入下一次循环
回复 使用道具 举报
break跳出循环,执行循环语句后面部分的代码,continue仅跳过本次循环,继续判断条件是否为真,为真时进入下一次循环。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马