Seite 7 von 8
Verfasst: 15.12.2008 00:16
von MVXA
Goto sind nicht vollkommen nutzlos. Sie können sogar recht praktisch sein.
Zumindest habe ich den Gebrauch von Labels und Goto in Linux gesehen.
Dort wird er verwendet um aus diversen Stellen in einer Funktion selbige
abzubrechen und ggf. verzapftes aufzuräumen. Sowas ist in der Tat lesbarer
als 12 eingerückte Sourceebenen...
Verfasst: 19.12.2008 01:11
von LCD
Wenn PB kein GoTo gehabt hätte, hätte ich es gar nicht gekauft. Zum richtigen Basic gehört nunmal GoTo dazu.
Verfasst: 19.12.2008 03:19
von AndyMars
LCD sagt es... Goto gehört zum Basic dazu... es kann gerade für Testzwecke durchaus praktisch sein - oder auch mal aus Bequemlichkeit.
Es ist schlicht ein Empfehlung, es nicht zu benutzen - allerdings aus gutem Grunde - das wissen wir doch alle: Setzt man unbedarft und häufig ein, kann jeder Code zur Hölle werden - ich erinnere mich da an meine Basic-Anfangszeiten (C64...) - den eigenen Quelltext versuchen wieder zu verstehen: "...und jetzt springt es dahin... und dann nach da, dann dorthin... und wieder zurück... ..." ...bis dass der Kopf raucht...

Verfasst: 19.12.2008 15:13
von PMTheQuick
Meine Meinung: Es ist nicht sinnvoll nur GoTo's etc. Das ist dann ein Wirr-Warr.
Aber in einem solchen Fall:
Code: Alles auswählen
Repeat
Repeat
Repeat
For a = 1 to 10
For b = 1 to 10
**CODE**
Next b
Next a
ForEver
ForEver
Verwende ich dann lieber ein GoTo, um zum Beispiel komplett rauszuspringen ausser aus der ersten Repeat-Schleife. (Habe Break nich so gerne ^^)
Gruss
PMTheQuick

Verfasst: 19.12.2008 15:37
von Froggerprogger
Dafür gibt es
wobei [N] (mit Defaultwert bei Weglassen: 1) die Anzahl der Verschachtlungen angibt aus denen rausgesprungen werden soll, bei dir also 5.
Verfasst: 19.12.2008 15:43
von Kaeru Gaman
alles fishi!
Code: Alles auswählen
Repeat
Repeat
Repeat
For a = 1 To aMax
For b = 1 To bMax
**CODE**
If Abbruchbedingung
b = bMax
a = aMax
Exit3 = #True
Exit2 = #True
Exit1 = #True
EndIf
Next b
Next a
Until Exit3
Until Exit2
Until Exit1
... DAS ist klassische Sauberkeit!
... aber ok, bei SO nem Strumpf würde ich vielleicht auch Break [n] benutzen....
trotzdem NIEMALS "ForEver", ab in' ofen damit
Verfasst: 19.12.2008 15:55
von bobobo
wobei break ja ansich auch nur ein verklausuliertes goto ist, oder?
Das Hauptargument FÜR den Einsatz von GOTO ist übrigens noch nicht
aufgetaucht.
dazu folgende Anmerkungen.
Code: Alles auswählen
Wer kennt sie nicht? Die berühmten Wurmlöcher im Weltall,
durch die allseits beliebte Weltraumhelden, wie der
berühmte Weltraumjockey Pirx oder auch Captain Link, um hier
nur die berühmtesten aufzuzählen, immer wieder
gerne zum Brötchenholen mal eben so in entfernte Galaxien
enteilen und nach getätigtem Einkauf und natürlich
erst nach der Errettung von meist leichtbekleideten jungen
Damen aus den glibberigen Fängen von ausserirdischen
Urschlamm-Monstern sogleich wieder am heimischen Herd
erscheinen, um der jeweiligen Gattin beim Abwasch zur
Hand zu gehen. Das allerdings nicht, weil sie es
wurmlochbedingt müssten, sondern weil sonst der Haussegen
mächtig schief hängt und ausserdem das Waschwasser kalt
werden würde.
Was ist nun das allseits geschmähte GOTO anderes, als genau
so ein Wurmloch im Programm mit der Möglichkeit, mal
eben so aus hoffentlich dringlichen programmbedingten
Gründen in entferntere Programmteile zu hüpfen, um dort
wichtige Sachen zu erledigen.
Verfasst: 19.12.2008 16:12
von rolaf
bobobo hat geschrieben:Code: Alles auswählen
Was ist nun das allseits geschmähte GOTO anderes, als genau
so ein Wurmloch im Programm mit der Möglichkeit, mal
eben so aus hoffentlich dringlichen programmbedingten
Gründen in entferntere Programmteile zu hüpfen, um dort
wichtige Sachen zu erledigen.

Verfasst: 19.12.2008 16:25
von Kaeru Gaman
das Problem mit Wurmlöchern ist eben, wenn man falsch durchfliegt,
ist man 20 Jahre älter wenn man am anderen Ende rauskommt,
oder sogar jünger, was extrem in die Hose gehen kann....
Verfasst: 19.12.2008 17:17
von ZeHa
Kaeru Gaman hat geschrieben:das Problem mit Wurmlöchern ist eben, wenn man falsch durchfliegt,
ist man 20 Jahre älter wenn man am anderen Ende rauskommt,
oder sogar jünger, was extrem in die Hose gehen kann....
...was letztendlich einen genauso undefinierten Zustand darstellen kann wie die Verwendung von Goto
