Überspringen von Anweisungen bei erfüllter Bedingung in schleifen

Ambassador181

Neues Mitglied
Hallo liebe Community,

meine Frage ist es kann ich bei dieser Schleife, falls die erste Bedingung erfüllt ist
Java:
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.

Java:
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++;
		}
 
Zuletzt bearbeitet:

U2nt

Bekanntes Mitglied
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.
 
N

nillehammer

Gast
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:
Java:
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() )
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Oben