C-Programmierung: break-Befehl

Hallo,

ich habe eine for-Schleife innerhalb einer switch-case-Abfrage. Die for-Schleife enthält mehrere if… else…-Abfragen.

 switch (status)
 {
 case (STOP) : 
 {
 break; // Quit switch-case-branch.
 }

 case (TRIGGER): 
 {

 if()
 {
 if () 
 {
 ...
 break; // Quit switch-case-branch.
 }
 } 

 for (;:wink:
 { 

 if () 
 {

 if()
 {
 ...
 break; // Springt aus switch-case-Zweig?
 }
 else
 {
 ...
 } 
 }
 else if () 
 {

 if()
 {
 ...
 break; // Springt aus switch-case-Zweig?
 }
 else
 {
 ...
 }
 } 

 ...
 }
 } // End of case TRIGGER.

Mir ist die Natur des break-Befehls nicht wirklich klar geworden.

Meine Frage lautet: wie kann ich gezielt die for-Schleife verlassen (und damit in den switch-case-Teil zurückkehren)? Ich hatte angenommen, dass dies mit dem break-Befehl gehen würde, aber dieser springt offenbar in den übergeordneten case-Teil zurück.

Was wäre, wenn ich mehrere switch-case-Teile hätte, so dass also in einem case-Zweig eine weitere switch-Anweisung mit mehreren case-Zweigen wäre? Wie könnte ich da gezielt in den obersten case-Zweig zurückspringen (wieder mit break)?

Danke für jeden Tipp und viele Grüße,
Crypto.

Howdy,

break terminiert immer das umschliessende for, do, switch oder while.
D.h. ein break mit umschliessendem for terminiert das for, nicht ein weiter oben liegendes case switch.

Meine Frage lautet: wie kann ich gezielt die for-Schleife
verlassen (und damit in den switch-case-Teil zurückkehren)?

Der Code ist so, wie er da steht, ohnehin nicht „schön“. Lager mal zunächst einige Funktionalitaeten in (meinetwegen inline) Funktionen/Methoden aus. Wenn du danach immer noch ein übergreifendes break benötigst, dann kannst du dort auch mit „goto“ hinspringen. In meinen 25 Jahren C/C++ hab ich das aber nur 1 mal benoetigt und das war in generiertem Code.

Gruss
norsemanna

dann kannst du dort auch mit
„goto“ hinspringen. In meinen 25 Jahren C/C++ hab ich das aber
nur 1 mal benoetigt und das war in generiertem Code.

Gruss
norsemanna

Das ist aber noch schlimmer finde ich, mit goto wirds dann nur wie sagt man so schön,ein Spaghetti Code.

Lieber die For Schleifen in Methoden packen,dann wirds einigermaßen übersichtlicher, wenn sich die For-Schleifen und die ganzen if-Bedingungen nicht vermeiden lassen.

Keozor,

Das ist aber noch schlimmer finde ich, mit goto wirds dann nur
wie sagt man so schön,ein Spaghetti Code.

was hast du hier beigetragen, was da noch nicht stand? Ich hab doch wohl darauf hingewiesen, dass goto eigentlich überflüssig ist und ausschliesslich für Notsituationen …

Gruss
norsemanna