Goto sinnvoll nutzen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Re: Goto sinnvoll nutzen

Beitrag von Rebon »

Die Verwendung von so etwas wie end1, end2, usw. ist in meinen Augen ein schlechter Programmierstil, weil es die Lesbarkeit des Codes erheblich verschlechtert.

Bei einem der ersten Programme welches ich in PB geschrieben hatte, habe ich ähnliches verwendet und später bereut. Wenn ich mich nicht irre, hatte ich den Teil des Codes leider sogar hier im PB-Forum veröffentlicht. :oops:
PB 4.00 | Windows XP Home SP3
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Goto sinnvoll nutzen

Beitrag von NicTheQuick »

Ich sehe es halt wie edel, also dass es so wesentlich leichter zu lesen ist. Wenn ich mir den Code von_sivizius so anschaue, dann verwirrt der Code irgendwie ganz schön. Allerdings hat er recht damit, dass es so wesentlich kompakter ist.
Ich habe es jedenfalls lieber so, dass das Programm, solange kein Fehler passiert, in einer Einrückungsebene weiter geht und sich nicht immer weiter nach rechts verzweigt.

Aber Geschmäcker sind verschieden. :wink: Ich denke wir sind uns auf jeden Fall darüber einig, dass man Codedopplungen vermeiden soll. Und das schaffen beide Codes.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Re: Goto sinnvoll nutzen

Beitrag von Rebon »

NicTheQuick hat geschrieben:Ich sehe es halt wie edel, also dass es so wesentlich leichter zu lesen ist. Wenn ich mir den Code von_sivizius so anschaue, dann verwirrt der Code irgendwie ganz schön.
Ich meinte im Vergleich zu dem von dir als erstes geposteten Code, diesen würde ich trotz der mehrfach gleichen Befehle bevorzugen. :wink:

Und es hat auch nicht unbedingt etwas mit Geschmack zu tun, ich mag Effektivität, nur ist die Abfolge dann auf dem ersten Blick nicht mehr sofort ersichtlich.
Wie gesagt, ich beziehe mich auf den ersten Code von dir.
PB 4.00 | Windows XP Home SP3
Benutzeravatar
_sivizius
Beiträge: 98
Registriert: 23.10.2013 15:21

Re: Goto sinnvoll nutzen

Beitrag von _sivizius »

wenn es um Übersichtlichkeit geht, sollte man meiner Meinung nach Kommentieren, Einrücken, Leerzeilen setzen, Code verstecken. Mit Macros kann man auch viel machen :P

Code: Alles auswählen

Procedure.i init()
  Macro _useUSB_
    If USB::useConfiguration(*handle, #nConfiguration, #nInterface, #nAltSetting)
      ProcedureReturn *handle
    EndIf
    USB::closeDevice(*handle)
    *handle = 0
  EndMacro
  Macro _checkUSB_
    If USB::checkConfiguration(*device, #nConfiguration, #nInterface, #nAltSetting))
      *handle = USB::openDevice(*device)
      If *handle
        _useUSB_
      EndIf
    EndIf
    USB::unuseDevice(*device)
  EndMacro
  Macro _initUSB_
    If USB::init()
      *device = USB::findDevice(#idVendor, #idProduct)
      If *device
        _checkUSB_
      EndIf
      USB::free()
    EndIf
  EndMacro
  _initUSB_
EndProcedure
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Goto sinnvoll nutzen

Beitrag von NicTheQuick »

Also die Macro-Variante finde ich jetzt aber am unübersichtlichsten. :lol:
Benutzeravatar
_sivizius
Beiträge: 98
Registriert: 23.10.2013 15:21

Re: Goto sinnvoll nutzen

Beitrag von _sivizius »

es sind aber alle Einzelteile geordnet. Zwar in umgekehrter Reihenfolge, aber das ließe sich auch wieder über Macros steuern ^^. Naja, die Macros kannst du auch ausblenden lassen in der ide
Benutzeravatar
SDL
Beiträge: 65
Registriert: 15.09.2006 05:19
Computerausstattung: MSI 990FXA-GD80
AMD FX-8350(3,1GHz) 4-4,4GHz
Corsair Dominator Platinum 8GB 2133 (2240)
2 Nvidia GeForce GTX 550Ti
Xilence XQ semipassives Netzteil 750Watt
SATA III WDC WD10 1TB
SATA III SSD Toshiba 128 GB
SATA III SSD Samsung 840 EVO 250 GB
eSATA WDC WD SE16 500 GB

Wassergekühlt

Win 7 pro
Leistungsindex 7,8
Wohnort: Hansestadt Stendal

Re: Goto sinnvoll nutzen

Beitrag von SDL »

:mrgreen: Ich finde das lustig. Streitet euch ob der Spinat unter oder auf die Kartoffeln liegen soll :bounce: .

Also ich habe 1987 auf ein ATARI 130xe mit Turbobasic (BIBO DOS)meine erste Oberfläche gebastelt und dabei sowohl GOTO oder GOSUB verwendet. Das Gleiche unter AMOS auf ein AMIGA1200. Und ich muss sagen das eine sinnvolle Verwendung von GOTO nicht weg zu denken ist, zumal immer ein JUMP (GOTO) dahinter steht.

Über Geschwindigkeitsvorteile zu streiten ist lustig und informativ, aber nicht ernsthaft zu bewerten, da zu viele Randbedingungen definiert werden müssen um vergleichbare Ergebnisse zu erhalten.

Also der eine mag Linsensuppe und der andere Bohnensuppe, aber alle müssen mit Wasser kochen. :mrgreen:

Aber man kann sehr viel Lernen :allright:
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Goto sinnvoll nutzen

Beitrag von rolaf »

SDL hat geschrieben:Also der eine mag Linsensuppe und der andere Bohnensuppe, aber alle müssen mit Wasser kochen. :mrgreen:
Und beide sorgen für ordentlich Wind von hinten. :lol:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Sundance
Beiträge: 24
Registriert: 25.04.2014 00:46

Re: Goto sinnvoll nutzen

Beitrag von Sundance »

SDL hat geschrieben:... Das Gleiche unter AMOS auf ein AMIGA1200.
Oh man. Da werden Erinnerungen wach. Ich weiß noch wie ich mir damals AMOS gekauft habe. Das waren noch Zeiten. *träum*.

Aber PureBasic macht mir auch wahnsinnig Spaß. Kenne es ja erst seit drei Wochen. Ich werde aber auch nicht zurück schrecken mal ein GoTo verwenden wenn es Sinn macht bzw. der Code ohne zu unübersichtlich würde...

VG
Sundance
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Goto sinnvoll nutzen

Beitrag von Andreas21 »

Zu Commodore C64 und Amiga 500/600 Zeiten......
Erinnerungen werden wach.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Antworten