Hallo Friendzzz, mal eine Frage: Wird in diesem Fall auch die case Anweisung abgebrochen, auch wenn das "break" in der if-Anweisung steht? Oder geht das gar nicht, oder wird die If-Anweisung abgebrochen? switch(modus) { case 0 : If (a=3) { break; } c=3; usw. Danke .... Eure Marie93
Eine "if-Anweisung" kann nicht abgebrochen werden, daher bezieht sich das break hier auf das case-Label. Deine Quellcodeformatierung (Einrückung) ist grässlich.
Ja. "Break" verlässt das nächstgelegene äussere do, for, switch oder while. (Nicht case, was ja sinngemäß hiesse das der default Fall abgearbeitet würde).
> Deine Quellcodeformatierung (Einrückung) ist grässlich.
Er hat zum Einrücken teilweise Leerzeichen und teilweise Tabs verwendet
und die Tablänge im Editor auf 2 eingestellt. Die Forensoftware wandelt
aber offensichtlich 1 Tab in 8 Leerzeichen um.
Deswegen: Wenn man schon Tabs zum Einrücken benutzt, sollte man dies
konsequent in jeder Zeile so machen.
Weniger Probleme hat man aber, wenn man auf Tabs im Quellcode komplett
verzichtet und stattdessen Leerzeichen verwendet. Leerzeichen sehen im
Gegensatz zu Tabs in jedem Betriebssystem, in jedem Editor, in jedem
Browser und auf jedem Drucker gleich aus.
Die meisten Editoren und IDEs können so konfiguriert werden, dass ein
Tab direkt bei der Eingabe in die gewünschte Anzahl von Leerzeichen
umgesetzt wird, so dass man auch keine Komforteinbußen bei der Eingabe
hat.
yalu schrieb: > > Weniger Probleme hat man aber, wenn man auf Tabs im Quellcode komplett > verzichtet und stattdessen Leerzeichen verwendet. Leerzeichen sehen im > Gegensatz zu Tabs in jedem Betriebssystem, in jedem Editor, in jedem > Browser und auf jedem Drucker gleich aus. > > Die meisten Editoren und IDEs können so konfiguriert werden, dass ein > Tab direkt bei der Eingabe in die gewünschte Anzahl von Leerzeichen > umgesetzt wird, so dass man auch keine Komforteinbußen bei der Eingabe > hat. Meine Meinung. Bin ja mal gespannt wie lang es zur Tabs vs. Leerzeichen Diskussion dauert :)
Rufus t. Firefly schrieb: > Eine "if-Anweisung" kann nicht abgebrochen werden, daher bezieht sich > das break hier auf das case-Label. anstelle eines breaks könnte man continue verwenden, diese beendet die momentane Schleife und fährt am am Schluss der Schleife weiter... Das Beispiel hab ich aus einem Buch: [c] int main (){ int loop = 1; do{ if(!(loop%10)) continue; printf("%lf\n",pow(loop,2); loop ++; }while(loop <= 100); return 0; } [c/]
Patrick B. schrieb: > Das Beispiel hab ich aus einem Buch: > [c] > int main (){ > int loop = 1; > do{ > if(!(loop%10)) > continue; > printf("%lf\n",pow(loop,2); > loop ++; > }while(loop <= 100); > return 0; > } > [c/] Dann würde ich das Buch wegwerfen... Was passiert wohl, wenn loop == 10 ist (SCNR).
ups, zitieren soll gelehrnt sein... > Der Fehler liegt hier darin, dass durch die "continue"-Anweisung auch die > Reinitialisierung der Schleifenvariablen übersprungen wird und sich daher > nach dem ersten Auftreten der "continue"-Anweisung an dem Wert der > Schleifenvariablen und der Auswertung der Schleifenbedingung nichts > mehr ändert. Schleifen abbrechen: "continue" Beendet die aktuelle Schleifeniternation "break" Beendet die ganze Schleife (nicht für reguläres Verlassen) "return" Beendet nicht nur die Schleife, in der die Anweisung aufgerufen wird, sondern die ganze Funktion "exit(int)" Beendet das Programm Arc Net schrieb: > (SCNR). NVM
Patrick B. schrieb: > ... > Schleifen abbrechen: > "continue" Beendet die aktuelle Schleifeniternation > "break" Beendet die ganze Schleife (nicht für reguläres Verlassen) ... oder das aktuelle switch, je nachdem wo es steht. > "return" Beendet nicht nur die Schleife, in der die Anweisung > aufgerufen auch ohne Schleife > wird, sondern die ganze Funktion > "exit(int)" Beendet das Programm ... , lässt aber vorher alle mit atexit() installierten Funktionen ausführen, offene Dateien schließen etc.. abort() beendet ein Programm dagegen umgehend ohne Firlefanz. > ...
Patrick B. schrieb: > ups, > zitieren soll gelehrnt sein... > >> Der Fehler liegt hier darin, dass durch die "continue"-Anweisung auch die >> Reinitialisierung der Schleifenvariablen übersprungen wird und sich daher >> nach dem ersten Auftreten der "continue"-Anweisung an dem Wert der >> Schleifenvariablen und der Auswertung der Schleifenbedingung nichts >> mehr ändert. Da sollte man aber vorsichtig mit sein. Hier im Beispil ist das korrekt, bei einer for-Schleife aber wird durch continue keineswegs die Reinitialisierung übersprungen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.