2016-07-07 21 views
0
// 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); 
    }; 

Ausgang:Wie aus einer While-Schleife in Java auszubrechen?

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 

Idealerweise möchte ich ihn stoppen, wenn der Zähler 4 und gehen nicht auf die Ausführung

„2 und 3 und der Größe 3 ist“ Viel zu schätzen!

+1

nur die 'entfernen while' Schleife, was Sie tun möchten, ist einfach einmal die 'for'-Schleife auszuführen. Könnten Sie klären, was passieren sollte, wenn Ihre Listengröße nicht 4 ist? – jhamon

+0

Sie können zwei Break-Anweisungen verwenden. Zuerst nimmst du dich einfach aus 'für', zweitens nimmst du' while' weg. Natürlich wäre es besser, wenn Sie die while-Schleife beenden, indem Sie die Bedingung erreichen. – PatNowak

Antwort

2

Sie müssen ein Etikett für die Schleife verwenden. Bitte versuchen Sie es unter Snippet:

// Setup dummy array 
    ArrayList<Integer> list = dateArray; 
    int counter = 1; 
outerwhileloop: 
    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 outerwhileloop; 
        } 
       } 
      } 
     } 
     list.remove(0); 
    };  
0

Sie eine boolesche Variable wie folgt hinzufügen:

// 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); 
}; 
1

einfach den Code auf ein Verfahren bewegen und Rückkehr nennen. Oder Sie können etwas verwenden, das labeled break genannt wird.

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; 
      } 
     } 
    } 
1

können Sie Java-Label verwenden, für das als:

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;  
    } 

Ausgabe ohne Etikett:

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 

Ausgang mit dem Label:

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