Seite 1 von 1

wofür ist continue gut?

Verfasst: Freitag 5. Februar 2016, 14:57
von M&M's_Knabberer
Ich rätzel gerade wofür man continue eigentlich verwenden könnte..
hat jemand ein Beispiel das man verstehen könnte? Mir scheint der Befehl in schleifen mit verzweigungen irgendiwe überflüssig zu sein..

Re: wofür ist continue gut?

Verfasst: Freitag 5. Februar 2016, 15:30
von snafu
Man kann Code in der Tat so schreiben, dass `continue` nicht benötigt wird.

Hier mal zur Veranschaulichung:

Code: Alles auswählen

for line in lines:
    if len(line) == 0:
        # ignore empty lines
        continue
    do_something(line)
Das `continue` bedeutet, dass sofort der nächste Schleifendurchlauf begangen wird. Das ``do_something()` wird dann also auf leere Zeilen nicht angewendet.

Und hier ohne `continue`:

Code: Alles auswählen

for line in lines:
    if len(line) > 0:
        do_something(line)
Hier wird das, was getan werden soll, einfach in einen `if`-Block gesteckt. Zeilen ohne Inhalt fallen nicht unter die `if`-Bedingung, sodass sie auch hier ignoriert werden.

Es kommt aber IMHO auf den Anwendungsfall an. Bei dem gezeigten Beispiel würde ich auf `continue` verzichten (d.h. Variante 2 nutzen). Wenn ich hingegen diverse Tests machen müsste und diese auch nicht sauber in einer einzigen Zeile abarbeiten könnte, dann ist es manchmal lesbarer, an den nötigen Stellen mit einem `continue` auszusteigen.

Übrigens sollte `continue` nicht mit `break` verwechselt werden: `break` bricht die komplette Schleife ab. `continue` nur den aktuellen Iterationsschritt.