Goto variable
-
Hallo zusammen,
Ich habe eine Frage zu dem Goto befehl.
Ist es möglich, dass man das Label durch zbs. einen String ersetzt?
Also etwa so:string x; x = "test"; goto x; cout << "fail\n"; test: cout << "ende";Vielen Dank für eure Antworten.
-
Nein. Aber goto solltest du eh nicht nutzen. (Schon gar nicht wenn man solche Fragen stellt. :p)
-
ok danke für deine Antwort ^^. Aber mit goto's geht alles so einfach

-
Dervin schrieb:
Aber mit goto's geht alles so einfach

Ohne geht es einfacher.
-
Dervin schrieb:
ok danke für deine Antwort ^^. Aber mit goto's geht alles so einfach

Zeig mal ein Beispiel.
-
Also ich programmiere gerade ein Spiel. In diesem Game hat es verschiedene Räume und der Spieler geht ja immer von einem in den anderen und manchmal wieder zurück in diesen usw... Um zwischen den Räumen zu springen benutze ich goto's für mich ist das am einfachsten.
Edit: Ich habe vorher kleine Batch programme gemacht. Da gibt es soweit ich
weis nur goto's. Darum sind diese mir vertrauter.
-
Du solltest dir einmal die C++ Kontrollstrukturen anschauen. Mit diesen kannst du wesentlich besser verstaendlichen und besser wartbaren Code schreiben.
Auch wenn fuer dich goto einfach erscheint so hat es sich gezeigt, dass goto zu schlechtem Code fuehrt - Stichwort Spaghetti Code. Aus meiner Sicht gibt es sehr, sehr wenige Anwendungen fuer goto.
-
Joa. In C gab es da noch Ausnahmen (schon das ist kontrovers), aber mit Destruktoren eigentlich ein No-Go.

-
Ich versteh nicht ganz was die Nachteile sind an Goto's.. Ist es wegen der
Unübersichtlichkeit?
-
Dervin schrieb:
Ist es wegen der
Unübersichtlichkeit?Ja.
-
Dervin schrieb:
Ich versteh nicht ganz was die Nachteile sind an Goto's.. Ist es wegen der
Unübersichtlichkeit?Nehmen wir einmal an du hast ein Programm mit 100'000 Zeilen. Dabei kann von jedem Punkt an jeden anderen Punkt gesprungen werden. Denkst du du kannst dabei noch die Uebersicht behalten?

(Ist vielleicht etwas uebertrieben formuliert. Aber es zeigt das Prinzip).
-
cooky451 schrieb:
Dervin schrieb:
Ist es wegen der
Unübersichtlichkeit?Ja.
Wenn ich aber Funktionen machen würde, müsste ich alle Parameter in diese
herübernehmen. Bei goto's muss man das ja nicht machen.. (soweit ich weis) ^^
-
Dervin schrieb:
Wenn ich aber Funktionen machen würde, müsste ich alle Parameter in diese
herübernehmen. Bei goto's muss man das ja nicht machen.. (soweit ich weis) ^^Was gibt es denn für Objekte in deinem Spiel? (Also nicht was du programmiert hast, sondern in der "echten" Spielwelt.)
Spieler? Räume? ..
-
icarus2 schrieb:
Dervin schrieb:
Ich versteh nicht ganz was die Nachteile sind an Goto's.. Ist es wegen der
Unübersichtlichkeit?Nehmen wir einmal an du hast ein Programm mit 100'000 Zeilen. Dabei kann von jedem Punkt an jeden anderen Punkt gesprungen werden. Denkst du du kannst dabei noch die Uebersicht behalten?

(Ist vielleicht etwas uebertrieben formuliert. Aber es zeigt das Prinzip).
*Spaghetticode*
-
Dervin schrieb:
cooky451 schrieb:
Dervin schrieb:
Ist es wegen der
Unübersichtlichkeit?Ja.
Wenn ich aber Funktionen machen würde, müsste ich alle Parameter in diese
herübernehmen. Bei goto's muss man das ja nicht machen.. (soweit ich weis) ^^Mich wuerde es echt interessieren wie dein Code aussieht.
Ich denke du solltest dir ein gutes C++ Buch kaufen und dieses durcharbeiten.
-
cooky451 schrieb:
Dervin schrieb:
Wenn ich aber Funktionen machen würde, müsste ich alle Parameter in diese
herübernehmen. Bei goto's muss man das ja nicht machen.. (soweit ich weis) ^^Was gibt es denn für Objekte in deinem Spiel? (Also nicht was du programmiert hast, sondern in der "echten" Spielwelt.)
Spieler? Räume? ..Zbs. Attribute vom Spieler (leben,mana usw..)
edit: es ist ein textbasierender Game

-
icarus2 schrieb:
Dervin schrieb:
cooky451 schrieb:
Dervin schrieb:
Ist es wegen der
Unübersichtlichkeit?Ja.
Wenn ich aber Funktionen machen würde, müsste ich alle Parameter in diese
herübernehmen. Bei goto's muss man das ja nicht machen.. (soweit ich weis) ^^Mich wuerde es echt interessieren wie dein Code aussieht.
Ich denke du solltest dir ein gutes C++ Buch kaufen und dieses durcharbeiten.
Werd ich. Kannst du mir eines empfehlen? Ich habe alle diese Informationen meines Programmes vom Internet.
-
Dervin schrieb:
Zbs. Attribute vom Spieler (leben,mana usw..)
Das sind ja schon ein paar Eigenschaften. Wenn du diese kapselst, hast du auch gleich weniger Parameter:
class character { float life_, mana_; public: // ... }; class room { // ... };Gerade Spiele eignen sich normalerweise wunderbar für Objektorientierung, weil man halt auch wirklich mit Objekten hantiert. Probiers mal. Sobald du mehr als 15 Räume hast, oder du diese aus Dateien lesen / zufällig generieren willst, wird das mit goto sicher keinen Spaß mehr machen.

-
Kannst du mir das genauer erläutern? Ich programmiere noch nicht sehr lange mit C++ und hab zwar mal was von Klassen gehört aber weis ned genau wie das geht

wie gesagt ich kauf mir mal ein Buch..
-
Na ja, das "genauer erläutern" würde ziemlich viel Text einnehmen. Wie gesagt, lern erst mal ein paar mehr Sprachmittel und dann versuchs noch mal. Du kannst natürlich auch mit goto arbeiten, aber ich prophezeie dir einfach mal, dass du da glorreich untergehen wirst.

-
Das goto setzt zur Compilezeit einen festen Identifizierer voraus, dieser kann auch z.B. exit: oder IchSteigeAus: heissen. Zur Laufzeit festgelegte Sprünge: was soll das bringen?
Dafür gibt es sicher bessere Möglichkeiten! Gelegentlich kann ein goto noch Sinn machen, aber nur in wenigen besonderen Fällen.