黑马程序员技术交流社区

标题: 怎么跳出循环 [打印本页]

作者: 秦驰    时间: 2011-7-20 09:54
标题: 怎么跳出循环
在JAVA中如何跳出当前的多重嵌套循环?
作者: 匿名    时间: 2011-7-20 10:10
break语句: break语句可以中止循环中的子语句和switch语句。一个无标号的break语句会把控制传给当前(最内)循环(while,do.for或Switch)的下一条语句。如果有标号,控制会被传递给当前方法中的带有这一标号的语句。如:
boolean b=true;
st:while(b)
{
     while(true)
     {
                        b=false;
           break st;
     }
}
本人初学者答错请见谅
作者: 匿名    时间: 2011-7-20 10:22
break 跳出循环

continue跳出单次循环。

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

或者加一个 返回 return
作者: 匿名    时间: 2011-7-20 10:42
简单地说:
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
标题: 回复 板凳 的帖子
仅跳出 里面的一层循环吧

外面的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]
作者: 李海涵    时间: 2011-7-20 10:59
标题: 回复 板凳 的帖子
还有你的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
这纯属为了混积分,可以理解。。。。。。。。。
作者: 匿名    时间: 2011-7-20 11:56
要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后再里层循环体的代码中使用带有标号的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]
作者: 匿名    时间: 2011-7-21 04:14
[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]




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