Verlassen eines If then Konstrukts mit goto

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Ebola33

Betreff: Verlassen eines If then Konstrukts mit goto

BeitragMi, Jan 26, 2005 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo hi Leute,
ist ne blöde Situation in der ich mich hier gerade befinde. Ich habe bei meinem aktuellen Projekt leider versäumt ein wichtiges feature einzubauen.Muss das jetzt nachträglich machen. Dabei ist es zwingend erforderlich daß ich 3 ineinander verschachtelte IF THEN Konstrukte mittels GOTO verlasse. Ich weiss daß man dies nicht tun sollte und man es auf jeden Fall vermeiden kann, leider nicht mehr bei diesem Code. Das würde mich Stunden kosten. Es funktioniert ja auch so weit nur hab' ich Angst daß es vielleicht doch zu Fehlern kommen könnte. Hat jemand schon Erfahrungen damit gesammelt ? Weiss jemand ob der Compiler das einfach so wegsteckt ?

Danke im vorraus.
Mfg Ebola
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

Jan_

Ehemaliger Admin

BeitragMi, Jan 26, 2005 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, mit GOTO Auf keinen Fall, in Funktionen Probieren zu Springen
Möglichst nicht in schleifen Springen
Achtung, Variablen bleiben erhalten!

Gosub zum Wieder Zurückspringen mit Return
between angels and insects

Ebola33

BeitragMi, Jan 26, 2005 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Naj, aus ner schleife könnte ich ja mit exit kommen. Der code befindet sich im mainloop und sonst in keiner schleife. Ich springe auch in keine andere schleife oderso. Ich überspringe damit quasi 3 endif's.
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

simi

BeitragMi, Jan 26, 2005 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, das geht schon, mach ich manchmal auch bei einfacheren Programmen.....
 

Jake

BeitragMi, Jan 26, 2005 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktioniert ohne Probleme!

Hardcore-Programmierern kräuseln sich da die Zehennägel, aber schließlich nehmen wir ja Blitz, weil es das Leben vereinfachen soll, da kann man auch mal sündigen. Und wenn du versprichst, dafür an anderer Stelle ein globale Arrays durch Types zu ersetzen, ist das ok...

Aber paß auf, daß dich keiner sieht, wenn du diese vier Buchstaben eintippst!
 

Blitzkrieg Bop

BeitragMi, Jan 26, 2005 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja Jake, auch in BB sollte man Goto weitgehenst vermeiden.
Das du BB so als Lullisprache darstellst ist auch nicht richtig...
Und ob man nen Array oder Types benutzt, hängt vom Verwendungszweck ab. Also ich bitte dich Rolling Eyes
~ Hey Ho Let's Go ~

Jan_

Ehemaliger Admin

BeitragMi, Jan 26, 2005 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, da haben wir schon 3 Leute, die wegen Goto heute noch einen Bann bekommen Smile
between angels and insects
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragMi, Jan 26, 2005 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Es lebe GOTO ! Smile

Es gibt kein Programm von mir, wo kein Goto vorkommt.

Warum auch ? Warum sollte ich gewisse Sachen komplizierter machen ?

Und Goto ist immer noch schneller, als um ein Problem herumprogrammieren.

Ich weiß nicht genau, wie BB das mit den Goto's handlet. Ich hatte irgendwann mal ein Basic, da gab es nach ellenlanger Zeit eine Fehlermeldung. Wegen Stack-overflow, oder so.

Ich hatte bei BB aber dieses Prob noch nie.

PS: mußte ich unbedingt loswerden, schon wegen dem Bann Wink


Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Ebola33

BeitragMi, Jan 26, 2005 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
@jake, mir geht es ganz und gar nicht darum ob ich goto benutzen soll oder nicht.Wenn man es nicht sollte wäre dieser Befehl wohl nicht da. (auch wenn ich es immer vermeide aber nur wegen der übersichtlichkeit)Es geht einfach nur darum ob ich damit ohne Probleme aus den Konstrukten springen kann. Kann mich da an eine Situation erinnern als ich noch vb programmiert habe. Da kam es zu beträchtlichen Problemen....
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

Hubsi

BeitragMi, Jan 26, 2005 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei BB wirst Du keine Probs damit haben. Es ist eine einfache und schnelle Lösung, ich würds auch nicht anders machen Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Ebola33

BeitragMi, Jan 26, 2005 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke @Hubsi, hot-bit, simi und jake

erledigt.
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

DerHase

BeitragMi, Jan 26, 2005 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schließe mich den Anonymen Goto Benützern an. Musste neulich auch einmal Goto einbauen, weil ich sonst, alles hätte aufdröseln müssen und es Stunden gedauert hätte.

stfighter01

BeitragMi, Jan 26, 2005 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
goto macht keine probleme beim kompilieren od. so
grundsätzlich ist es nur deswegen verpönt weil es das programm unübersichtlich macht.

wenn man z.b.: von einer funktion in eine andere hüpft und v. dort wieder ganz woanders hin.
da bleibt die übersichtlichkeit und die möglichkeit den code schön nachzuvollziehen einfach auf der strecke.
allerdings erlaubt bb gar keine sprünge durch funktionen, und von daher ists schon ziemlich entschärft.
für so kleine "spring aus der for-schleife u. co." anwendungen ists durchaus ok.
es sollte halt immer nachzuvollziehen sein was da passiert, sonst kannst nach 2 tagen deinen eigenen code nicht mehr lesen.

mfg stfighter
Denken hilft!

TheShadow

Moderator

BeitragMi, Jan 26, 2005 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
also BlitzMax unterstützt keine GOTO im STRICT-Modus (wo alle Variablen deklariert werden müssen)

Das kommt deswegen:


GOTO jump
LOCAL tmp=1
#jump
PRINT tmp


weil tmp gar nicht deklariert wurde, gäbe es einen Fehler... Natürlich könnte Bmax das alles kompensieren, indem es eine Variablen-liste erstellt und dann alles zuerst am Programmanfang deklariert (so wird es gemacht, wenn strict aus ist). Das ist jedoch nicht möglich, weil Blöcke ihre "lokale" Variablen haben...

Grundsätzlich würde ich GOTO in BB2D/3D/Plus verwenden - in BlitzMax kann man es momentan nicht im Strict-Modus - darum sind GOTO's dort etwas sinnlos...

Wenn jetzt einer sagt: GOTOs sind böse, dann denke ich, dass der keine Ahnung von Programmieren hat. Diese machen weder den Code unübersichtlich (den dann würde niemand sich mit den unübersichtlichen C-Codes ärgern), noch machen die das Programm langsam, oder komplizierter. GOTO's werden generell niemals verwendet, um einen Code zu strukturieren, sondern diese werden verwendet, um aus Schleifen zu entkommen und ähnliches...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Jake

BeitragDo, Jan 27, 2005 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
@BB:

Nur weil ich gesagt hab, das Blitz einfach ist, werte ich es nicht als Lullisprache im negativen Sinne. Im Vergleich zu Assembler ist C++ auch ne Lullisprache, aber im positiven Sinne, weil man sein Gehirnschmalz zum Entwickeln verwenden kann, statt sich in kryptischen Codes zu verzetteln. So gesehen ist Blitz auch eine Lullisprache, im positiven Sinne.

Ts, ts, ich rede doch nicht schlecht von Blitz....GOTO end

.end
Jake

Jan_

Ehemaliger Admin

BeitragDo, Jan 27, 2005 10:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Goto's sind Böse.
Zitat:

Diese machen weder den Code unübersichtlich, noch machen die das Programm langsam, oder komplizierter.


Also meiner Meinung nach unübersichtlich und komplizierter auf jeden fall.
1. alle Variablen bleiben da :-/
2. Es gibt keine referenz, woher man kommt, wohin man geht.
3. ist nicht wirklich geschlossen.

Aber Goto hat auch Vorteile,
1. Sauchst schnell, sprungzeit geht gegen 0 (im gegensatz zu Funktion)
2. Sehr unkompliziert
3. Alle Variablen bleiben da.

Naja, Goto bitte nur auf einer Ebene Benutzten.
between angels and insects

regaa

BeitragFr, Jan 28, 2005 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Jan_ hat Folgendes geschrieben:
Also meiner Meinung nach unübersichtlich und komplizierter auf jeden fall.
1. alle Variablen bleiben da :-/
...

Aber Goto hat auch Vorteile,
...
3. Alle Variablen bleiben da.

Naja, Goto bitte nur auf einer Ebene Benutzten.


Lustiger Gedanke^^
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

Ralf

BeitragFr, Jan 28, 2005 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

warum soll Goto schlecht sein?
Es gab Zeiten auf den Amiga oder C64 da gab es keine Functionen, nur Goto und Gosub. Das ging auch.

Zitat:
Ich weiß nicht genau, wie BB das mit den Goto's handlet. Ich hatte irgendwann mal ein Basic, da gab es nach ellenlanger Zeit eine Fehlermeldung. Wegen Stack-overflow, oder so.


Toni, das war nicht bei Goto, sondern bei zuvielen ineinander verschachtelten Gosub-Befehlen. Oder wenn Du irgendwo ein Return vergessen hast, dann kam dieser Fehler.

Ralf
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragFr, Jan 28, 2005 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Ja, da hast du Recht.

Also ist GOTO noch viel sinnvoller als ich dachte Smile
Und universeller...

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Triton

BeitragFr, Jan 28, 2005 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
a-bit hat Folgendes geschrieben:
Goto's


Jan_ hat Folgendes geschrieben:
Goto's


GOTOs verdammt. Ich könnte kotzen, wenn ich diese Apostroph-Scheiße sehe.
Coding: silizium-net.de | Portfolio: Triton.ch.vu

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group