Was haltet ihr von Goto
Ich benutze Goto nie, das habe ich mir abgewöhnt und seitdem kommen bei mir nurBreak und Continue zum Einsatz.
Besser so, hab es mit meinen Gotos zu 3.94er Zeiten auch in meinem ersten "richtigem", großem Projekt übertrieben und mich obendrein gewundert, warum mein Programm immer abstürzt.
@ DrFalo
Seit wann kennt man seine Rekursionstiefe nicht? Kann mir grade keinen derartigen Fall vorstellen...
Besser so, hab es mit meinen Gotos zu 3.94er Zeiten auch in meinem ersten "richtigem", großem Projekt übertrieben und mich obendrein gewundert, warum mein Programm immer abstürzt.
@ DrFalo
Seit wann kennt man seine Rekursionstiefe nicht? Kann mir grade keinen derartigen Fall vorstellen...
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Richitg eingesetzt können Gotos ja auch nützlich sein. Ich benutz sie des öfteren bei Spielen, da ich zwischen Hauptmenu, Optionen, Speichern, Laden hin und herschalten kann und diese meisten eine eigene Schleife haben.
Als erstes setzte ich eine Sprungmarke. Dannach lege ich Variablen fest, damit ich diese nicht ausversehen kaput machen kann und um nicht für jeden Teil einzelene Variabeln festzulegen. Dannach kommt dann die Schleife.
Das ist praktisch, denn ich sag nur goto MainMenu und schon lade ich im Hauptmenu. Fertig. Und sorgen darum zu machen irgedeine Variable verstellt zu haben brauch ich mir auchnicht. Wird ja alles korrigiert.
Als erstes setzte ich eine Sprungmarke. Dannach lege ich Variablen fest, damit ich diese nicht ausversehen kaput machen kann und um nicht für jeden Teil einzelene Variabeln festzulegen. Dannach kommt dann die Schleife.
Das ist praktisch, denn ich sag nur goto MainMenu und schon lade ich im Hauptmenu. Fertig. Und sorgen darum zu machen irgedeine Variable verstellt zu haben brauch ich mir auchnicht. Wird ja alles korrigiert.
Zuletzt geändert von kswb73 am 13.12.2008 22:59, insgesamt 1-mal geändert.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Open Suse 11.2: PB 4.4
Den Fall würd ich aber jetzt gerne mal kennen lernen ...DrFalo hat geschrieben:Gibt auch Fälle in denen ich die Schleifenanzahl zum Zeitpunkt des Verlassens nicht kenne.

Bei Rekursionen ist das klar ... aber schleifen ... es gibt nur eine feste
Anzahl an gestarteten Schleifen, also kann man auch wissen, wie viele
beendet werden sollen.

... ich hab seit PB nicht ein mal ein GOTO verwenden müssen ...
Mit etwas überlegen kann man (zumindest in PB) jedes GOTO vermeiden.
BREAK und CONTINUE verwende ich statt dessen heufig.
Hoch lebe die Planung

MFG PMV
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Ich benutz sie des öfteren bei Spielen, da ich zwischen Hauptmenu, Optionen, Speichern, Laden hin und herschalten kann und diese meisten eine eigene Schleife haben.
jedem ne eigene schleife zu geben ist auch ... fishy ... Kinderkram ...
eine Hauptschleife, ein Clearscreen, ein FlipBuffers im ganzen Code,
dann braucht man auch kein GoTo.
jedem ne eigene schleife zu geben ist auch ... fishy ... Kinderkram ...
eine Hauptschleife, ein Clearscreen, ein FlipBuffers im ganzen Code,
dann braucht man auch kein GoTo.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Jo mach ich auch so.Kaeru Gaman hat geschrieben:> Ich benutz sie des öfteren bei Spielen, da ich zwischen Hauptmenu, Optionen, Speichern, Laden hin und herschalten kann und diese meisten eine eigene Schleife haben.
jedem ne eigene schleife zu geben ist auch ... fishy ... Kinderkram ...
eine Hauptschleife, ein Clearscreen, ein FlipBuffers im ganzen Code,
dann braucht man auch kein GoTo.
Hab da ne Variable, welche den Spielstatus/Position/Wasauchimmer hält. 1 steht z.b. für laufendes Spiel, 2 für Hauptmenü, etc. Dann wird innerhalb der Gameloop einfach mit Select für jeden Status der entsprechende Code ausgeführt. Goto brauch ich da keins.
Ich brauche nie Goto. Hab ich früher in Turbo Basic stark verwendet und mir dann in Visual Basic abgewöhnt. Der Grund ist ganz einfach das der Code wesentlich an Lesbarkeit einbüst.
Aber ein Machwerk des Teufels ist Goto ganz sicher nicht.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

-
- Beiträge: 972
- Registriert: 04.10.2004 18:42
- Computerausstattung: Amiga, LinuxMint, Windows7
- Wohnort: gotha
- Kontaktdaten:
ich koennt ohne garnich leben
Goto kneipe
Goto Kuehlschrank
Goto Klo
nein, wenn ich mal was spielerisches code, dann benutze ich nie gotos
ganz einfach weil ich allen kram in procedures packe
und auch in diesen benutze ich keine gotos, sondern hab ne variable
fuer den status und benutze select,case,endselect
allerdings ist das weder besser noch schlechter, auch der "goto-hass" ist totaler nonsens
wenn man sich den asm output ansieht, macht der compiler bei pb auch nur nen lumpigen sprungbefehl draus, wie bei if - endif - abfragen, wo der weiterfuehrende code "weiter weg" ist, oder eben repeat - forever etc
das einzige was ich im goto auszusetzen haette, waere das wenn ich goto benutze, alles in einer codedatei sein muesste, damit ich den ueberblick bewahre
darum packe ich alles in procedures und mache fuer jede procedure eine eigene quelltextdatei
die hauptprogrammschleife ist dann nichts anderes als das hier
die grafiken werden vor dem spiel und menu komplett geladen,
bei groesseren sachen bei jedem aufruf von game(level) je nach level
Goto kneipe
Goto Kuehlschrank
Goto Klo
nein, wenn ich mal was spielerisches code, dann benutze ich nie gotos
ganz einfach weil ich allen kram in procedures packe
und auch in diesen benutze ich keine gotos, sondern hab ne variable
fuer den status und benutze select,case,endselect
allerdings ist das weder besser noch schlechter, auch der "goto-hass" ist totaler nonsens
wenn man sich den asm output ansieht, macht der compiler bei pb auch nur nen lumpigen sprungbefehl draus, wie bei if - endif - abfragen, wo der weiterfuehrende code "weiter weg" ist, oder eben repeat - forever etc
das einzige was ich im goto auszusetzen haette, waere das wenn ich goto benutze, alles in einer codedatei sein muesste, damit ich den ueberblick bewahre
darum packe ich alles in procedures und mache fuer jede procedure eine eigene quelltextdatei
die hauptprogrammschleife ist dann nichts anderes als das hier
Code: Alles auswählen
global gamemode=0
repeat
select gamemode
case 0
menu()
case 1
game(level)
case 2
intro()
case 3
deadscreen()
...etc
endselect
forever
bei groesseren sachen bei jedem aufruf von game(level) je nach level
amiga rulez...
Rebirth Software
Rebirth Software
Das eine hat aber nichts mit dem anderen zu tun. Zumindest denke ich nichtxperience2003 hat geschrieben: allerdings ist das weder besser noch schlechter, auch der "goto-hass" ist totaler nonsens
wenn man sich den asm output ansieht, macht der compiler bei pb auch nur nen lumpigen sprungbefehl draus, wie bei if - endif - abfragen, wo der weiterfuehrende code "weiter weg" ist, oder eben repeat - forever etc
das Fred/Freak sowas als Compileroutput raushauen :
Code: Alles auswählen
Procedure test()
Goto lala
EndProcedure
lala:
test()
- Captn. Jinguji
- Beiträge: 397
- Registriert: 07.06.2005 19:47
- Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
- Wohnort: Witten
Öhmmm rekursives Abklappern von Filesystemen z.B. ?AND51 hat geschrieben:@ DrFalo
Seit wann kennt man seine Rekursionstiefe nicht? Kann mir grade keinen derartigen Fall vorstellen...
Da schleppe ich Rekursionstiefenmesser nur mit, wenn ich von vornherein die Suchtiefe begrenze, ansonsten lass ich sie laufen, so tief sie will, aber ich weiss die Tiefe nicht.
Aber ich benutze andererseits auch nie GOTO, ist mir zu unübersichtlich.
Ist das Kunst hier, oder kann das weg ?
Das macht man aber mit einer Prozedur und keiner Schleife. Und wo daCaptn. Jinguji hat geschrieben:Öhmmm rekursives Abklappern von Filesystemen z.B. ?AND51 hat geschrieben:@ DrFalo
Seit wann kennt man seine Rekursionstiefe nicht? Kann mir grade keinen derartigen Fall vorstellen...
Da schleppe ich Rekursionstiefenmesser nur mit, wenn ich von vornherein die Suchtiefe begrenze, ansonsten lass ich sie laufen, so tief sie will, aber ich weiss die Tiefe nicht.
Aber ich benutze andererseits auch nie GOTO, ist mir zu unübersichtlich.
nen Goto hin kommen könnte ist mir auch schleierhaft.

MFG PMV