# Überspringen von Anweisungen bei erfüllter Bedingung in schleifen



## Ambassador181 (4. Nov 2011)

Hallo liebe Community,

meine Frage ist es kann ich bei dieser Schleife, falls die erste Bedingung erfüllt ist 

```
if(g.istAn() == true)
	System.out.println("Das Gerät ist an. Schalter: " + i);
```
diesen Schriit überspringen und trotzdem den weiteren Schritt überprüfen lassen?
Es handelt sich hierbei um eine void Methode.


```
int i = 0;
		while(i < g.anzahlSchalter()){
			g.betaetigeSchalter(i);
			if(g.istAn() == true)
				System.out.println("Das Gerät ist an. Schalter: " + i);
			if(g.passiertWasCooles() == true)
				System.out.println("Es passiert was cooles");
			i++;
		}
```


----------



## nillehammer (4. Nov 2011)

42


----------



## U2nt (4. Nov 2011)

Hallo!
Könntest du bitte auch die Java-Tags richtig benutzen? 

Außerdem ohne Fragestellung kann man da wenig sagen, höchstens könnte ich aus dem Titel schließen das du das ganze in eine Methode schreibst. Dann kann du mit einem einfachen return aus der Methode gehen. Oder in einer Schleife mit break.


----------



## Ambassador181 (4. Nov 2011)

Sorry verklickt. hab es jetzt vollständig geschrieben.


----------



## nillehammer (4. Nov 2011)

return: Verlässt komplette Methode (geht auch bei void Methoden)
break: Verlässt Schleife
continue: Bricht den aktuellen Durchlauf einer Schleife ab und fängt mit dem nächsten Durchlauf an
In Deinem Fall wäre es wohl continue, wobei Du dann in einer Endlosschleife hängen bleibst, weil das i++ nie aufgerufen würde. Ändere Deine while-Schleife wie folgt:

```
for (int i = 0; i < g.anzahlSchalter(); i++) {
            g.betaetigeSchalter(i);
            if(g.istAn()) {
                System.out.println("Das Gerät ist an. Schalter: " + i);
                continue;
            }
            if(g.passiertWasCooles()) {
                System.out.println("Es passiert was cooles");
            }
}
```
Und noch zwei Vorschläge zum Code:
- Klammere auch Einzeiler nach einem if. Das macht den Code lesbarer und Du stolperst nicht in die Falle, das zu vergessen, wenn es doch mal mehr Zeilen werden sollen.
- Wenn Deine Methoden istAn() und passiertWasCooles() schon boolean zurückliefern, kannst Du das == true weglassen. (Bei == false wäre es dann z.B. ! istAn() )


----------

