Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 37

Thema: goto SCL

  1. #11
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wobei man aber auch mal zugestehen sollte, das aus den ganzen IF, THEN usw. der Hochsprachen nach der Kompilierung in Maschinensprache auch bloß ein JMP dahin oder dorthin wird.

    Also genau wie in AWL.
    Nur daß man es nicht direkt sieht.


  2. Folgende 2 Benutzer sagen Danke zu hucki für den nützlichen Beitrag:

    00alex (21.06.2013),jusaca (02.10.2014)

  3. #12
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von JOHKU Beitrag anzeigen
    " Unser Motto:
    Wenig GOTO!"
    Das ist unvollständig. Es muss heißen:

    Weniger GOTO, mehr EXIT!

    Frank
    Grüße Frank

  4. #13
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    Das ist unvollständig. Es muss heißen:

    Weniger GOTO, mehr EXIT!
    Versteh ich nicht, was soll das heißen?

  5. #14
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Versteh ich nicht, was soll das heißen?
    EXIT-Anweisung
    Wenn die EXIT-Anweisung in einer FOR-, WHILE- oder REPEAT-Schleife vorkommt, dann wird die innerste Schleife beendet, ungeachtet der Abbruchbedingung.

    Gruß

    Frank
    Grüße Frank

  6. #15
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Was die Exit Anweisung macht ist mir bewusst, nur ist das eben kein Ersatz für goto.

    Code:
    IF a THEN
      IF b THEN
        IF c THEN
           // Hier bei einer Bedigung den kompletten IF-Zweig verlassen
        ENDIF
      ENDIF
    ENDIF
    oder

    Code:
    FOR i := 0 TO 1000
      FOR j := 0 TO 1000
        FOR k := 0 TO 1000
          // Hier bei einer Bedigung alle drei verschachtelten Schleifen verlassen
    Da kommt man mit Exit nicht weit.
    Und an den Stellen wo man Exit einsetzen kann, hat wohl noch nie jemand ein goto gesetzt.

  7. #16
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Wobei man aber auch mal zugestehen sollte, das aus den ganzen IF, THEN usw. der Hochsprachen nach der Kompilierung in Maschinensprache auch bloß ein JMP dahin oder dorthin wird.

    Also genau wie in AWL.
    Nur daß man es nicht direkt sieht.

    gerade der Umstand, dass man die Sprünge nicht sieht, macht Hochsprachenkonstrukte übersichtlicher, sodenn man auf goto verzichten kann. Exit gehört, glaube ich, auch eher in die Kategorie deprecated, wenn ich da meinen Informatikunterricht noch richtig im Ohr behalten habe.

  8. Folgender Benutzer sagt Danke zu Perfektionist für den nützlichen Beitrag:

    00alex (21.06.2013)

  9. #17
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von Perfektionist Beitrag anzeigen
    Exit gehört, glaube ich, auch eher in die Kategorie deprecated, wenn ich da meinen Informatikunterricht noch richtig im Ohr behalten habe.
    Das ist definitiv ein falscher Gedankengang.

    Wenn du in einer Suchschleife von 0 bis 100 etwas suchst und das beim Element 2 findest,
    dann springst du ganz gepflegt mit EXIT heraus, oder willst du wirklich bis 100 durchzählen
    und erst zum Schluss mit dem gemerkten Element 2 weiterarbeiten.

    Ich verwende EXIT im Codesys-ST wirklich sehr oft.

    Frank
    Grüße Frank

  10. #18
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Code:
    FOR i := 0 TO 1000
      FOR j := 0 TO 1000
        FOR k := 0 TO 1000
          // Hier bei einer Bedigung alle drei verschachtelten Schleifen verlassen
    aahh, ein hübsches Beispiel, das anregt, etwas anders machen zu können:
    Code:
    done := false;
    repeat [ Code]
     done := [abbruchbedingung];
    until done;
    ganz ohne exit und goto. nur dass man halt seine Laufvariable(n) selbst initialisieren und hochzählen muss. Und dass man diese Laufvariablen nicht auf den ersten Blick erkennen kann.

  11. #19
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Dass man ein goto immer irgendwie umschiffen kann ist klar. Nur ab einer gewissen Schachtelungstiefe ist es eben übersichtlicher ein goto zu verwenden (die bei 3 sicher noch nicht erreicht ist).
    Und es ist eigentlich genauso ein Dogma, dass man bei einer Schleife die eine Laufvariable hat die dafür vorgesehen Anweisungen verwendet.
    Nur um ein goto zu vermeiden zur unübersichtlichen repeat-Schleife zu wechseln ist auch alles andere als schön.

  12. #20
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Nur um ein goto zu vermeiden zur unübersichtlichen repeat-Schleife zu wechseln ist auch alles andere als schön.
    In der Firmenvorschrift, die ich beachten muss, wird nur eine FOR-Schleife und IF-THEN erlaubt.

    Frank
    Grüße Frank

Ähnliche Themen

  1. GOTO in ST
    Von RobiHerb im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 15.10.2012, 10:39
  2. SCL: FB Aufruf unter SCL mit Variablen DB
    Von ThorstenK im Forum Programmierstrategien
    Antworten: 32
    Letzter Beitrag: 10.02.2011, 19:15
  3. GOTO Anweisung
    Von Felse im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 13.03.2009, 10:17
  4. Antworten: 4
    Letzter Beitrag: 07.10.2006, 00:34
  5. Brauche Hilfe bei SCL.SFC Aufrufen in SCL
    Von Gerold im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.10.2005, 10:47

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •