黑马程序员技术交流社区

标题: 关于跳出for循环? [打印本页]

作者: ↙五线谱╲    时间: 2013-12-1 16:44
标题: 关于跳出for循环?
请教各位大神,一个for循环用break跳出即可。
但当我写了多个嵌套循环后,怎么从最里层的循环语句中跳到最外面?
作者: 容嬷嬷当年也是    时间: 2013-12-1 16:56
用标记 。把你要所跳出的循环做一个标记。 做个标记就可以了。
作者: Jim-剣◆﹏    时间: 2013-12-1 17:00
给for循环写上标记
例子:
out:for(int i =0;i<10;i++){
       System.out.println("我是外循环");
       in:for(int j = 0;j<10;j++){
      System.out.println("我是内循环");
      break out;//此时就不是跳出默认的内层循环,而是根据标记跳出,现在跳出的是外层循环
       }
}
作者: 25343215    时间: 2013-12-1 17:02
我们可以在循环体开头设置一个标志位,也就是设置一个标记,然后使用带此标号的break语句跳出多重循环。格式:   
标记名:    break 标记名;      
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                 OK: // 设置一个标记 使用带此标记的break语句跳出多重循环体
  4.                 for (int i = 1; i < 100; i++) { // 让i循环99次
  5.                         for (int j = 1; j <= i; j++) {

  6.                                 if (i == 10) {// 判断当i循环第10次时跳出
  7.                                         break OK;
  8.                                 }

  9.                                 System.out.print(i + "*" + j + "=" + i * j);
  10.                                 System.out.print(" ");
  11.                         }
  12.                         System.out.println();
  13.                 }
  14.         }
  15. }
复制代码

作者: 刘瑞    时间: 2013-12-1 17:09
在java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的的break语句,即可跳出外层循环。例如:
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;
}
}
不过我个人觉得通常不使用标号这种方式,而是让外层的循环条件表达式的结果可以收到里层循环体代码的控制,例如,要在二维数组中查找到某个数字。
int arr[][]={{1,2,2},{2,2,5},{4,4}};
boolean found =false;
for(int i=0;i<arr.length&&!found;i++)
{
    for(int j=0;j<arr[i].length;j++)
{
    system.out.println("i="+i+",j="+j);
    if(arr[i][j]==5)
{     
    found=true;
    break;
}
}
}




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