如何突破java中的while循环?

时间:2016-07-07 09:00:05

标签: java while-loop break

// Setup dummy array
    ArrayList<Integer> list = dateArray;
    int counter = 1;
    while (list.size() != 0) {
        for (int j = 1; j < list.size(); j++)
        {

            //System.out.println(list.get(0) + " and " + list.get(j));
            int difference = list.get(0) - list.get(j);
            if (difference <6){
                System.out.println(list.get(0) + " and " + list.get(j) + " and size is " +list.size() );    
                counter= counter +1;
                System.out.println ("Counter is " + counter);
                if (counter >= 4){
                    System.out.println ("j = " + j + " Counter =" + counter);   
                    if (j ==list.size()-1) {
                        System.out.println ("here " + counter); 
                        break;
                    }   
                }
            }
        }
        list.remove(0);
    };  

输出:

1 and 2 and size is 4  
Counter is 2  
1 and 3 and size is 4  
Counter is 3  
1 and 4 and size is 4  
Counter is 4  
here 4  
2 and 3 and size is 3  
Counter is 5  
3 and 4 and size is 2  
Counter is 6  
here 6  

理想情况下,我希望它在Counter为4时停止并且不继续执行“2和3且尺寸为3”

非常感谢!

4 个答案:

答案 0 :(得分:2)

您需要为循环使用标签。请尝试下面的代码段:

card-columns

答案 1 :(得分:1)

只需将代码移动到方法并调用return即可。否则,您可以使用名为labeled break的内容。

search:
    for (i = 0; i < arrayOfInts.length; i++) {
        for (j = 0; j < arrayOfInts[i].length;
             j++) {
            if (arrayOfInts[i][j] == searchfor) {
                foundIt = true;
                break search;
            }
        }
    }

答案 2 :(得分:1)

您可以将java标签用作:

    int x = 1;
    outerLoopLabel:
    while(x != 10) {
      int fact = 0;      
      for(int i=0;i <=x; i++) {        
        fact +=i;
        if(fact > 25) {
          break outerLoopLabel;    
        }
      }
      System.out.println("Number: "+ x + " and fact: " + fact);      
      ++x;      
    }

无标签输出:

Number: 1 and fact: 1
Number: 2 and fact: 3
Number: 3 and fact: 6
Number: 4 and fact: 10
Number: 5 and fact: 15
Number: 6 and fact: 21
Number: 7 and fact: 28
Number: 8 and fact: 36
Number: 9 and fact: 45

标签输出:

Number: 1 and fact: 1
Number: 2 and fact: 3
Number: 3 and fact: 6
Number: 4 and fact: 10
Number: 5 and fact: 15
Number: 6 and fact: 21

答案 3 :(得分:0)

你可以像这样添加一个布尔变量:

// Setup dummy array
ArrayList<Integer> list = dateArray;
int counter = 1;
boolean isBreak = false;
while (list.size() != 0 && !isBreak) {
    for (int j = 1; j < list.size(); j++)
    {

        //System.out.println(list.get(0) + " and " + list.get(j));
        int difference = list.get(0) - list.get(j);
        if (difference <6){
            System.out.println(list.get(0) + " and " + list.get(j) + " and size is " +list.size() );    
            counter= counter +1;
            System.out.println ("Counter is " + counter);
            if (counter >= 4){
                System.out.println ("j = " + j + " Counter =" + counter);   
                if (j ==list.size()-1) {
                    System.out.println ("here " + counter); 

                    isBreak = true;
                    break;
                }   
            }
        }
    }
    list.remove(0);
}; 
相关问题