GOTO in C++



  • Ja, Du hast recht. (bei mir stehts allerdings in Kapitel 6.2.2 (TC++PL third edtition)) Ich hatte allerdings den folgenden Satz im Kopf, den du im gleichen Kapitel findest:

    The order of evaluation of subexpressions within an expression is undefined. In partucular, you cannot assume that the expression is evaluated left to right. For example: ...

    Du magst recht haben damit dass die Funktion selbst schlecht aufgebaut ist. Das ganze scheint auch vielleicht ein wenig an den Haaren herbeigezogen, da das Beispiel nur "ungefähr" einem "real-world" example entspricht.

    mit switch haben wir die möglichkeit den programmfluss so zu konstruieren:

    ¦
      o---\--\--\
      ¦   ¦  ¦  ¦
      ¦<--/  ¦  ¦
      ¦      ¦  ¦
      ¦<-----/  ¦
      ¦         ¦
      ¦<--------/
      V
    

    hingegen haben wir für das folgende nur die möglichkeit einen manchmal etwas komplizierten if else konstrukt oder mit goto (mit return kannst Du etwas ähnliches erreichen, bist dann aber direkt aus der Funktion raus):

    ¦
      o---------\
      ¦         ¦
      o------\  ¦
      ¦      ¦  ¦
      o---\  ¦  ¦
      ¦   ¦  ¦  ¦
      ¦<--/--/--/
      V
    

    Ich möchte damit eigentlich nur sagen dass es durchaus "sensible uses" für goto gibt. Auch wenn der resultierende code nicht unbedingt "clean" aussieht. Es kann sein dass der gleiche Code, ohne goto wesentlich komplizierter wird.



  • Ja, Du hast recht. (bei mir stehts allerdings in Kapitel 6.2.2 (TC++PL third edtition))

    Die Kapitelangaben bezogen sich auf den International Standard ISO/IEC 14882. Also den C++ Standard.

    Einen Final Draft findest du hier: http://www.kuzbass.ru/docs/isocpp/

    In diesem Fall passen sogar die Kapitelangaben (also 5.14 und 5.15)

    Ich möchte damit eigentlich nur sagen dass es durchaus "sensible uses" für goto gibt.

    Bezweifle ich gar nicht.


Anmelden zum Antworten