Wenn ich mich mal einmischen darf, ich glaube mit "historischem Hintergrund" meint Ihr diesen Herrn hier:
http://en.wikipedia.org/wiki/Edsger_W._Dijkstra
Cool! In Wikipedia gibt's nen eigenen Artikel über den GOTO Befehl! Und es gibt sogar Abhandlungen, warum man ihn nicht benutzen soll!
Muss ich mal lesen, wenn ich Zeit hab!
Die Abhandlungs stammt übrigens aus dem Jahr 1968, somit hab ich ne tolle Überleitung zu dem Thema "historsicher Hintergrund": Falls es jemanden interessiert:
Früher (als z.B. Twix noch Raider hiess und Telefone noch Kabel hatten) wurden Programme mit Zeilennummern geschrieben, aber anders, als das z.B. der KUKA heute noch macht.
Damals "zeigten" GOTO Befehle auf Zeilennummern, also z.B.
50 MAch irgendwas
60 IF .... THEN GOTO 100
...
100 Mach sonstwas
...
Wollte man jetzt eine Zeile einfügen, konnte (musste nicht unbedinbgt) es vorkommen, dass sich die Zeilennummern veränderten. Damit "zeigte" der Sprungbefehl an ein falsches Sprungziel und schon war das Programm versaut.
Manchmal musste man mit GOTOs "hin- und her" springen, sozusagen von "oben nach unten" und wieder von unten nach oben". Da war es mit der natürlich mit der Übersicht schnell vorbei! In manchen Sprachen gab es aber einfach keine Unterporgramme, oder eine IF Then Anweisdung konnte nur einen Befehl haben, da ging das nicht anders!!
Als dann struktrierte Programmiersprachen aufkamen, war natürlich der bisherige Programmierstil veraltet und man hat Programme ganz anders aufgebaut. In dieser Zeit entstand das Dogma "GOTO=Böse".
Heute verwendet man natürlich Sprungmarken, die sich nicht "verschieben" können, wie früher die Zeilennummern.
Und wenn man jetzt den GOTO gezielt einsetzt, um z.B. aus ner Schleife rauszuspringen oder einen Teil eines Programmes zu überspringen sehe ich nicht, was daran so schlimm sein soll.
Ich hab früher Assembler programmiert und programmier heute noch viel SPS in AWL (ob das gut oder schlecht ist,wird auch gerne in anderen Foren diskutiert, auch ein Dogma, manche Kunden verlangen es halt einfach), da sind Sprungbefehle einer der Hauptbestandteile der Programmierung.
Ich programmier auch Hochsprachen, da würd ich' auch nie GOTO verwenden, aber gerade bei Robbis macht's m.E. ab und zu Sinn. Einerseits vermeidet es Probleme (Ich sag nur "Kontrollstruktur nächster Satz" ) und andererseits ist es für einen Bediener, der nicht so viel mit Programmierung zu tun hat, manchmal einfacher nachzuvollziehen.
Fazit: Wer will, kann GOTO vermeiden, wer's nicht tut, ist nicht automatisch ein schlechter Programmierer!
Jetzt geb ich Ruhe zu dem Thema, es hat nämlich wirklich nix mit der eigentlichen Frage zu tun! Ich finde nur solche Pauschalisierungen und Dogmen nervig!
Jetzt haben wir uns aber alle wieder lieb! :peace:
P.S.: Wie kann ich nen Smiley basteln, der ein "GOTO" Schild hochhält ? :angel: :angel: