# verschachtelte For-Schleife - continue



## Wolfgang Lenhard (23. Jul 2008)

Hi,
gibt es eine Möglichkeit, in verschachtelten For-Schleifen eine continue-Anweisung auf die übergeordnete Schleife zu beziehen? Beispiel:


```
for(int i = 0; i < 100; i++){
   for(int j = 0; j < 100; j++){
      if(irgendetwas)
         continue; <- hier soll Schleife j verlassen und i inkrementiert werden
    }
}
```

Danke,
  Wolfgang

P.S.: Bzw.:


```
while(irgendeineBedingung){
   for(int j = 0; j < 100; j++){
      if(irgendetwas)
         continue; <- hier soll Schleife j verlassen und ein neuer Durchlauf der while-Schleife angestoßen werden
    }
}
```


----------



## SlaterB (23. Jul 2008)

```
for(int i = 0; i < 100; i++){ 
   boolean doContinue = false
   for(int j = 0; j < 100; j++){ 
      if(irgendetwas) {
         doContinue = true;
         break;
      }
    } 
  if (doContinue) {
    continue;
  }
}
```


----------



## Wolfgang Lenhard (23. Jul 2008)

Hi SlaterB,
danke! So eine Konstruktion hatte ich bereits. Ein direktes (und somit eleganteres) "Ansprechen" der übergeordneten Schleife ist also wohl nicht möglich, oder?

Danke,
   Wolfgang


----------



## tfa (23. Jul 2008)

Doch, es gibt Label (man kann streiten, ob das elegant ist).
Wir hier erklärt: www.faqs.org/docs/think_java/TIJ305.htm (nach *The infamous “goto”* suchen)


----------



## Wolfgang Lenhard (23. Jul 2008)

Danke! Naja, "infamous" klingt zugegebenermaßen nicht so prickelnd.


----------



## Kim Stebel (23. Jul 2008)

also labels sind locker eleganter als die von Slater vorgeschlagene Konstruktion. Sieht dann etwa so aus:

```
label1: for (..........)
    for(..........)
        if (keineLustMehr) continue label1;
```


----------



## Wolfgang Lenhard (23. Jul 2008)

Hm, stimmt auch wieder. Seit wann gibt es denn Labels? Wurden die in den letzten Java-Versionen hinzugefügt? Ich höre heute zum ersten Mal davon.


----------



## tfa (23. Jul 2008)

Ich glaub seit JDK 1.0


----------



## SchonWiederFred (23. Jul 2008)

Es geht auch viel einfacher:


```
for(int i = 0; i < 100; i++){ 
   for(int j = 0; j < 100; j++){ 
      if(irgendetwas) 
         break; <- hier soll Schleife j verlassen und i inkrementiert werden 
    } 
}
```

Das setzt natürlich voraus, dass innerhalb der äußeren for-Schleife nur die innere for-Schleife existiert und nicht noch irgendwas anderes.


----------

