Seite 2 von 2

Verfasst: 05.07.2008 18:37
von edel
Xaby hat geschrieben: Den hier kenn ich ja
http://www.purebasic.fr/german/viewtopi ... hlight=oop
( Aber das Wort Preprozessor hat mir Angst gemacht und es scheint auch nicht auf MacOS zu laufen )
Eigentlich ein tolles Programm, wenn man denn nicht auf inc. angewiesen
waere. Der Aufruf von Rings an die Kommunitie war ein OpenSource
Programm, das eben nicht, dank nur eines Programmieres, vor sich
hinvegetiert, weil man es nicht anpassen und auch keine Fehler beheben
kann. Jetzt ist es das was inc. nicht haben wollte, ein Programm das kaum
einer nutzt. Schade.

Verfasst: 05.07.2008 20:31
von Xaby
@Kaeru
Kaeru hat geschrieben:
xaby hat geschrieben:hat Folgendes geschrieben:
Der Befehl ProcedureReturn sollte in einer Prozedur nur einmal und auch nur ganz zum Schluss der Prozedur vorkommen.
...sagt wer?
Ist einfach vernünftiger. Dann bleibt der Aufbau ähnlicher dem von anderen Sprachen.

Wieder ein schlechtes Beispiel:
http://www.it-infothek.de/fhtw/progr_10.html

Widerspricht sich auch. Strukturierte Programmierung und nur einen Ausgang, aber benutzt mehrere Returns.

Dann macht, was ihr wollt. Ich bleibe dabei, es ist ordentlicher, wenn man nicht mittem im Programm irgendwo rausspringt, sondern nur einmal ein Return in einer Prozedur benutzt. Und das sollte dann vor EndProcedure stehen.

:roll:

Verfasst: 05.07.2008 20:56
von Kaeru Gaman
ist geschmackssache.

je nachdem was du machst musst du ne zwischenvariable mitschleppen,
brauchst 37 Ifs und Breaks, und benutzt am ende noch Goto...

Verfasst: 05.07.2008 21:10
von edel
Ich persoenlich finde das aber auch besser ;)

Code: Alles auswählen

Procedure test(a)
  Protected result.l = 0
  
  Repeat
    
    If a = 1
      result = a
    Break : EndIf
    
    If a = 2
      result = 0
    Break : EndIf
    
  Until #True ; immer abbrechen
  
  ProcedureReturn result
EndProcedure

Debug test(2)
Debug test(1)
oder eben so :

Code: Alles auswählen

Procedure test(a)
  Protected result.l = 0
  
  If a = 1
    result = a
  ElseIf a = 2
    result = 0
  EndIf
  
  ProcedureReturn result
EndProcedure

Debug test(2)
Debug test(1)