break & continue: sprungmarken

Status
Nicht offen für weitere Antworten.

SebastianK

Mitglied
hallo,

so mein erster beitrag :)

was break und continue machen weiß ich, allerdings komme ich mit den sprungmarken nicht zurecht.
auch wenn man sie selten braucht, würd ich gern die handhabung verstehen^^

kann man mit "break/continue marke;" nur nach oben springen oder auch nach unten?
hab sowohl gelesen das es nur nach oben geht als auch, dass "break marke;" nach unten springt und "continue marke;" nach oben.

daran schließt sich: ist es egal ob ich break oder continue mit einer sprungmarke verwende?


hoffe mir kann das jemand irgendwie bantworten....

mfg
 

Bert Brenner

Bekanntes Mitglied
Beispiel eine for-schleife.

Ein continue in der Schleife bedeutet das sofort mit dem nächsten durchgang der Schleife begonnen wird.

Ein break bedeutet das die Schleife verlassen wird.
 

SebastianK

Mitglied
danke für die antwort, aber das war mir klar :)

mir gehts um die verbindung mit einer sprungmarke und wie sich das programm dann verhält.
 

ARadauer

Top Contributor
du meinst dass du an eine bestimme stelle im code springen kannst.
das ähnelt ja sehr dem goto befehl und sollte dringlichst vermieden werden!

uns wurde im studium sehr verdeutlicht dass wir das nicht machen sollen. stichwort: Spaghetti code
ich habe auch ehrlich gesagt noch nie gesehen, dass das wirklich jemand verwendet.

ps: wenn du wirklich wissen willst, wie sich das program verhält, (noch oben oder unten springen) probiers einfach aus.
 

Evolver

Bekanntes Mitglied
continue kann meines Wissens nach nur in Schleifen verwendet werden (um in den nächsten Durchlauf zu springen).
break bricht den aktuellen Block ab.


EDIT: Noch ein kleines Beispiel zu den "Sprungmarken":
Code:
Marke1:
{
	System.out.println("Marke1");
	Marke2:
	{
		System.out.println("Marke2");
		if(/*irgendwas*/) break Marke1;
	}
	System.out.println("Ende Marke1");
}
Diese "Sprungmarken" dienen also im Grunde nur dazu, dass man auch bei verschachtelten Blöcken direkt auf einem übergeordneten Block herausspringen kann. Ist die Bedingung im obigen Beispiel erfüllt, so würde der Text Ende Marke1 nicht ausgegeben.
 

SebastianK

Mitglied
jop das springen an bestimmte stellen meine ich.

ein besipiel:
Code:
marke:
for (int i=0; i<6; i++) {
  System.out.println( i );
  if (i == 3) {
    break marke;
    //oder continue marke; (?)
  }
}

also eine frage wäre nun, ob man mittels sprungmarken nur nach oben springen kann oder auch nach unten.
und ob "break marke;" das gleiche ist wie "continue marke;"


zu dem beispiel:
wenn ich "break marke;" verwende ist die ausgabe "1 2 3" und bei "continue marke;" ist sie "1 2 3 4 5".

verstehe nur nicht so recht warum...

-------
edit:
@Evolver: zu deinem beispiel:
wenn die if-bedingung true ergibt springt er ja zu Marke1.
aber warum wird dann nicht ab Marke 1 weitergearbeitet?
ich dachte immer das jedesmal, wenn an eine Marke gesprungen wird, der folgende Code ausgeführt wird...ist hier allerding nicht der fall.

beim verwenden von continue erhalte ich ne fehlermeldung und nach unten kann ich auch nicht springen...hm..
 

*Hendrik

Bekanntes Mitglied
Interessant sind Sprungmarken eigentlich nur bei mehreren verschachtelten Schleifen. Beispiel Java-Insel

Die Ausgabe ist bei break marke -> 1 2 3, weil Du mit break den Schleifendurchlauf komplett abbrichtst und die for-Schleife verlässt, während Du bei continue marke nur den aktuellen Schleifendurchlauf beendest und wieder an den Anfang der Schleife springst und den nächsten Durchlauf beginnst - also die Standardfunktionalitäten von break und continue (Java-Insel). In Deinem Beispiel ist die Verwendung einer Sprungmarke im Grunde nicht notwendig - da keine Verschachtelung vorhanden ist.
Dementsprechend sollte es auch nur möglich sein, nach oben zu springen, d.h. zu einer umgebenden Schleife.
 

Evolver

Bekanntes Mitglied
wenn die if-bedingung true ergibt springt er ja zu Marke1.
aber warum wird dann nicht ab Marke 1 weitergearbeitet?
Das ist falsch, mit brak "springt" man in dem Sinne nirgens hin, sondern die bearbeitung des zu Marke1 gehörenden Block wird "abgebrochen". Wie *Hendrik schon sagte, macht das eigentlich nur bei Verschachtelungen Sinn, denn mit dem einfachen break könnte ich immer nur den aktuellen Block abbrechen.
 

Saxony

Top Contributor
Hiho,

ausserdem müsste nach SebastiansK Theorie sein Code permanent 123 ausgeben, da er sich so einen Endlossprung gebastelt hat.

Da aber nur einmal 123 ausgegeben wird, ist anzunehmen, dass mit break marke der komplette Block beendet wird und nicht wieder nach oben gesprungen wird.

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Break Continue Java Basics - Anfänger-Themen 4
B Break, Continue und Assert Java Basics - Anfänger-Themen 5
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
H break/continue in einer if-Abfrage? Java Basics - Anfänger-Themen 15
G continue und break Java Basics - Anfänger-Themen 1
B break Anweisung Java Basics - Anfänger-Themen 13
A break; mit Einfluss hinter else if Block Java Basics - Anfänger-Themen 3
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
D Break funktioniert nicht so wie es soll Java Basics - Anfänger-Themen 8
A break mit Sprungmarken Java Basics - Anfänger-Themen 41
I Erste Schritte while anstatt for, if und break Java Basics - Anfänger-Themen 10
M Erste Schritte Break-Anweisung bei if-else Java Basics - Anfänger-Themen 6
S Break in dem Zusammenhang "legitim"? Java Basics - Anfänger-Themen 4
A mit break if beenden Java Basics - Anfänger-Themen 6
P for Schleife mit break, verstehe die Ausgabe nicht Java Basics - Anfänger-Themen 6
S break Label als Spungmarken vorher definieren Java Basics - Anfänger-Themen 4
G Probleme mit break hier; in if-Bedingung Java Basics - Anfänger-Themen 5
T String: NeueZeile (" ") , Break etc. abfangen Java Basics - Anfänger-Themen 2
I Frage zur Ausgabe do while mit break Java Basics - Anfänger-Themen 2
G break? Java Basics - Anfänger-Themen 2
C Switch / Case Problem, break funktioniert nicht! Java Basics - Anfänger-Themen 3
H Schleifen: break Java Basics - Anfänger-Themen 7
T Gültigkeit von break Java Basics - Anfänger-Themen 5
F Methode abbrechen wie mit break in Schleifen ? Java Basics - Anfänger-Themen 2
H break anweisung Java Basics - Anfänger-Themen 4
G break out; funzt nicht Java Basics - Anfänger-Themen 7
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
V Erste Schritte Warum geht meine continue Anweisung nicht? Java Basics - Anfänger-Themen 8
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
T switch case und continue Java Basics - Anfänger-Themen 5
S 'continue' in catch- und if-blöcken Java Basics - Anfänger-Themen 2
F continue in verschachtelter Schleife Java Basics - Anfänger-Themen 6
hdi continue bei labels Java Basics - Anfänger-Themen 31
W verschachtelte For-Schleife - continue Java Basics - Anfänger-Themen 8
D "Press any key to continue" Java Basics - Anfänger-Themen 2
G Sprungmarken Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben