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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 秦驰 黑马帝   /  2011-7-20 09:54  /  3353 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在JAVA中如何跳出当前的多重嵌套循环?

评分

参与人数 1技术分 -1 收起 理由
老罗 -1 此问题摘自张孝祥老师面试宝典?

查看全部评分

8 个回复

倒序浏览
黑马网友  发表于 2011-7-20 10:10:25
沙发
break语句: break语句可以中止循环中的子语句和switch语句。一个无标号的break语句会把控制传给当前(最内)循环(while,do.for或Switch)的下一条语句。如果有标号,控制会被传递给当前方法中的带有这一标号的语句。如:
boolean b=true;
st:while(b)
{
     while(true)
     {
                        b=false;
           break st;
     }
}
本人初学者答错请见谅

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 初学者,答得不错!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-20 10:22:30
藤椅
break 跳出循环

continue跳出单次循环。

你可能想跳出很多的循环。 只要在每个循环的{}内加break就行

或者加一个 返回 return
回复 使用道具 举报
黑马网友  发表于 2011-7-20 10:42:22
板凳
简单地说:
break  跳出所有循环

continue跳出本次循环
例如:

(1)
for(int i=1;i<=10;i++){

   for(j=0;j<=10;j++){

   if(j==5)
       break;
   }
}
内外两层循环都退出了


(2)
for(int i=1;i<=10;i++){

   for(j=0;j<=10;j++){

   if(j==5)
      continue;
   }
}
只退出内循环
回复 使用道具 举报
黑马网友  发表于 2011-7-20 10:54:27
报纸

回复 板凳 的帖子

仅跳出 里面的一层循环吧

外面的i 还是需要循环10次的  还有你的j 要加int 定义一下。[code]public class ForBreak {
       
public static void main(String[] args)
        {
                for(int i=1;i<=10;i++)
                {
       
                           for(int j=0;j<=10;j++)
                           {
                                   System.out.println(j);
                           if(j==5)
                                  
                               break;
                           }
                           System.out.println(i);
                }
        }

}[/code]
回复 使用道具 举报

回复 板凳 的帖子

还有你的continue;
不是 退出内部循环。而是每次 i循环进去后 j==5的时候 他才跳出。 不过。他还要继续进去执行5以后的循环
  1. public class Forcontinue {

  2.        
  3. public static void main(String[] args)
  4.         {
  5.         int j;
  6.         for(int i=1;i<=10;i++)
  7.         {

  8.                    for( j=0;j<=10;j++)
  9.                    {
  10.                           

  11.                           if(j==5)
  12.                                   continue;
  13.                                
  14.                           
  15.                           System.out.println(j);
  16.                    }
  17.                 }
  18.         }

  19. }
复制代码
[ 本帖最后由 lihaihan 于 2011-07-20  11:02 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-7-20 11:14:52
7#
这纯属为了混积分,可以理解。。。。。。。。。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 判断很准确。

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-20 11:56:54
8#
要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后再里层循环体的代码中使用带有标号的break语句,即可跳出外层循环,例如:[code]ok:
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
System.out.Println("i="+i+",j="+j);
if(j==5) break ok;
}
}[/code]另外我们也可以让外层的循环条件表达式的结果受到里层循环体代码的控制,例如:[code]boolean find=false;
for(int i=0;i<10&&!find;i++)
{
for(int j=0;j<10;j++)
{
System.out.Println("i="+i+",j="+j);
if(j==5) {find=true;break;}
}
}[/code]

评分

参与人数 1技术分 +1 收起 理由
admin + 1 说得很对

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-21 04:14:11
9#
[quote] 原帖由 [i]王海飞[/i] 于 2011-07-20 10:42 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=4092&ptid=319][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]简单地说:
break  跳出所有循环

continue跳出本次循环
例如:

(1)
for(int i=1;i<=10;i++){

   for(j=0;j<=10;j++){

   if(j==5)
       break;
   }
}
内外两层循环都退出了


(2)
for(int i=1;i<=10;i++){

   for(j=0;j<=10;j++){

   if(j==5)
      continue;
   }
}
只退出内循环 [/quote]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马