goto modul?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
lunar

Beitragvon lunar » Sonntag 4. November 2007, 15:28

Nicht, dass das schlecht wäre, denn was du bisher so über deinen Code verraten hast, war diese wohl gelinde gesagt einfach mies.
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Montag 5. November 2007, 12:33

BlackJack hat geschrieben:Es funktioniert nicht so einfach wenn man aus einer inneren Schleife an den Anfang springen möchte.


Naja, dann löst man es allgemein eben mit einer Exception (zumindest man möchte wirklich miesen Code erzeugen :-) ):

Code: Alles auswählen

while 1:
    try:
       <code>
        if foo:
            raise ContinueException()
        <code>
        irgendwann:
            break
    except ContinueException:
        pass
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Beitragvon mq » Montag 5. November 2007, 22:55

Naja, hin und wieder kann goto praktisch sein, dass viele Leute es absolut verteufeln, halte ich fuer einen Fehler. Aber stimmt schon, meistens weist es auf schlechte Codestruktur hin.

Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Montag 5. November 2007, 23:22

mq hat geschrieben:Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?

Es gibt aber einen kleinen Unterschied zwischen C und Python ...

Im Übrigen hoffe ich nicht, daß goto bei mir tatsächlich tausende Male beim Start aufgerufen wird - wird nämlich meist zum Errorhandling eingesetzt.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 6. November 2007, 13:23

mq hat geschrieben:Naja, hin und wieder kann goto praktisch sein, dass viele Leute es absolut verteufeln, halte ich fuer einen Fehler.

Ich nicht. Mir fehlt es in Python nicht, dir etwa? Das ist ähnlich wie das `global` Keyword: man braucht es nicht, und da es da ist muss man Leuten die Benutzung dessen oft ausreden, weil sie es einfach bedenkenlos nutzen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Beitragvon Zap » Dienstag 6. November 2007, 13:53

mq hat geschrieben:Wusstet ihr, dass beim simplen Starten eines Python-Interpreters mehrere tausend mal goto ausgefuehrt wird?


Ne, wusste ich noch nicht. Mir ist beim portieren des CPython-Interpreters zumindest nichts deartiges aufgefallen. Würde gerne die Sourcen dazu sehen. Kann mir das irgendwie nur schwer vorstellen, da auch in C Goto zurecht sehr verpöhnt ist. Oder meinst du die vielen defines in den C-Sourcen?! Das ist kein Goto...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 6. November 2007, 14:01

Vielleicht sind ja die Assembler-Sprunganweisungen gemeint. Aber ich finde nicht dass das zählt, denn der Interpreter ist nicht in Assembler geschrieben und welchen Code der Compiler letztendlich erzeugt ist vollständig egal.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Dienstag 6. November 2007, 14:22

Nein es sind schon ``goto``\s gemeint. Die werden bei CPython oft benutzt um in Fehlerfällen ans Ende zu einer Fehlerbehandlung zu springen um die Verschachtelungstiefe geringer zu halten.

Der (gute) Einsatzzweck von ``goto`` ist da also der gleiche wie Ausnahmebehandung in höheren Sprachen. Das ist ja auch ein unbedingter Sprung aus der verschachtelten Kontrollfluss-Struktur heraus.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Dienstag 6. November 2007, 14:35

Der (gute) Einsatzzweck von ``goto`` ist da also der gleiche wie Ausnahmebehandung in höheren Sprachen.


Womit es dann aber in jeder sprache, die (subjektiv) höher als c++ angesiedelt ist, keine Rechtfertigung für ein goto sein kann, dank Exceptions.
Also eher: es gibt in c gute Gründe für goto, nicht, es gibt gute Gründe für goto.
Achja, noch cooler wäre ja ein comefrom ;)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 6. November 2007, 14:47

keppla hat geschrieben:Also eher: es gibt in c gute Gründe für goto, nicht, es gibt gute Gründe für goto.

Mag jemand Exceptions für C haben? ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Dienstag 6. November 2007, 15:27

wow. das ist schon etwas unheimlich...

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder