Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要退出for循环吗_Java_For Loop_Break - Fatal编程技术网

Java 要退出for循环吗

Java 要退出for循环吗,java,for-loop,break,Java,For Loop,Break,当计数变为9时,我想退出两个for循环。我使用了break,但是它只能从第一个for循环退出。怎么做呢 ArrayList<String> list = new ArrayList<String>(); int count = 0; System.out.println("Before entering to loop"); for(int i=0;i<5;i++){ list.a

当计数变为9时,我想退出两个for循环。我使用了
break
,但是它只能从第一个for循环退出。怎么做呢

       ArrayList<String> list = new ArrayList<String>();
        int count = 0;
        System.out.println("Before entering to loop");
        for(int i=0;i<5;i++){
            list.add("XYZ"+i);
            for( int j=0;j<5;j++){
                list.add("ABC"+j);
                count++;
                if(count==9){
                    System.out.println("I want to exit from here.");
                    break;
                }
                System.out.println("i="+i+"::j="+j);
            }
            System.out.println("------------");
        }
        for(String str:list){
            System.out.println(str);
        }
    }
ArrayList list=new ArrayList();
整数计数=0;
System.out.println(“进入循环前”);

对于(int i=0;i在中断内部循环之前,可以将布尔标志设置为true。然后检查外部循环是否为true。如果是这样,也可以中断外部循环。

可以引入一个标志,当计数达到9时,在内部循环中设置该标志。外部循环将有一个if语句来检查该标志值。if是的,也要打破外部循环。类似这样:

boolean breakLoop = false;
for(int i=0;i<5;i++){
            list.add("XYZ"+i);
            for( int j=0;j<5;j++){
                list.add("ABC"+j);
                count++;
                if(count==9){
                    System.out.println("I want to exit from here.");
                    breakLoop = true;
                    break;
                }
                System.out.println("i="+i+"::j="+j);
            }
             if(breakLoop)
                 break;
            System.out.println("------------");
        }
boolean breakLoop=false;
对于(int i=0;i您可以使用标签:

OUTER: for (...) {  // <--
    ...
    for (...) {
        if (...)
            break OUTER;  // <--
    }
}
OUTER:for(…){/您可以选择标签

标签:

您可以将标签放在循环的开头。标签是一个标识符,后跟冒号。它只是代码中的一个位置。然后,您可以使用break后跟标签名来中断循环,并将标签放在其中

例如:

public void twoNum( int num, int val )
{
OUTER_LOOP: // OUTER_LOOP is a label
  for ( int i = 0 ; i < num ; i++ )
  {
      for ( int j = 0 ; j < num ; j++ )
      {
         if ( i + j >= 2 * val )
            break OUTER_LOOP ;
         val = val / 2 ;
      }
  }
  // break comes here if it runs
public-void-twoNum(int-num,int-val)
{
OUTER\u LOOP://OUTER\u LOOP是一个标签
for(int i=0;i=2*val)
打破外环;
val=val/2;
}
}
//如果它运行,break就会出现在这里
布尔外部=假;

对于(int i=0;i有很多关于
break
语句和标签的答案,但是这些构造通常会导致混乱的代码,在第一次阅读时(或在一段时间后重新阅读)很难理解。一般来说,我认为在这种情况下最好进行重构

在您的示例中,您知道要在内部循环的9次迭代后停止,所以为什么要费心将循环计数器设置为5?更清楚的是,要显式地执行您想要的操作:

    ArrayList<String> list = new ArrayList<String>();

    System.out.println("Before entering to loop");
    list.add("XYZ"+i);
    for( int j=0;j<5;j++){
      list.add("ABC"+j);
    }
    list.add("XYZ"+i);
    for( int j=0;j<4;j++){
      list.add("ABC"+j);
    }
    for(String str:list){
        System.out.println(str);
    }
}
ArrayList list=new ArrayList();
System.out.println(“进入循环前”);
列表。添加(“XYZ”+i);
对于(intj=0;j只需添加

(计数!=9)

用于循环的条件:

   ArrayList<String> list = new ArrayList<String>();
    int count = 0;
    System.out.println("Before entering to loop");
    for(int i=0;i<5;i++){
        list.add("XYZ"+i);
        for( int j=0;j<5 && count!=9;j++){
            list.add("ABC"+j);
            count++;
            System.out.println("i="+i+"::j="+j);
        }
        System.out.println("------------");
    }
    for(String str:list){
        System.out.println(str);
    }
ArrayList list=new ArrayList();
整数计数=0;
System.out.println(“进入循环前”);

对于(int i=0;i(或),您可以使用Taked break-Available duplicate of Take care,它可能会将您的代码简化为一盘意大利面条。您可能更喜欢在特定的方法中使用循环,在完成时可以返回一些值。或者重构您的算法,使其只有一个循环。
   ArrayList<String> list = new ArrayList<String>();
    int count = 0;
    System.out.println("Before entering to loop");
    for(int i=0;i<5;i++){
        list.add("XYZ"+i);
        for( int j=0;j<5 && count!=9;j++){
            list.add("ABC"+j);
            count++;
            System.out.println("i="+i+"::j="+j);
        }
        System.out.println("------------");
    }
    for(String str:list){
        System.out.println(str);
    }