Aus Funktion zurückkehren

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

X0r

Betreff: Aus Funktion zurückkehren

BeitragFr, Jul 14, 2006 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann man in Blitzmax aus einer Funktion zurückkehren(abbrechen), welche in einer Funktion eingebunden ist?
Also z.B:

Code: [AUSKLAPPEN]

Function search(apath$)
If FileType(apath$)=0 Return

odirs1=ReadDir(apath$)
Repeat
WaitEvent()



Select EventSource()
Case stosearch
stops=1

End Select


Select EventID()
Case EVENT_TIMERTICK

If stops=0 Then


file$=NextFile(odirs1)

If file$="" Then Return





If FileType(apath$+"/"+file$)=1 Then

SetGadgetText spwin,"Searching.."+file$
If ExtractExt(apath$+"/"+file$)="pac"  Or  ExtractExt(apath$+"/"+file$)="PAC" Then
AddGadgetItem listg,apath$+"/"+file$
EndIf

ElseIf FileType(apath$+"/"+file$)=2
If file$<>"." And file$<>".." Then

search(apath$+"/"+file$)



EndIf
EndIf
EndIf
End Select



Until file$=""







CloseDir(odirs1)
End Funktion


Wenn der jetzt in irgendeinem Unterordner sucht und man bricht ab, wie kann ich dann aus der ganzen Funktion bzw. Funktionen zurückkehren? gibt es dafür einen Befehl?
  • Zuletzt bearbeitet von X0r am Fr, Jul 14, 2006 19:08, insgesamt einmal bearbeitet

d-bug

BeitragFr, Jul 14, 2006 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Aus Funktion zurück springen mit Return und aus einer Schleife mit Exit. Da hat sich nichts geändert (in Bezug auf BB)
 

X0r

BeitragFr, Jul 14, 2006 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie macht man das mit verzweigten Funktionen?
funktion a()
print"A"
a
end function

Artemis

BeitragFr, Jul 14, 2006 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Was sind verzweigte Funktionen?

Meinst du rekursiv aufgerufene Funktionen?

Per Return kehrst du immer an die Stelle zurück von welcher die Funktion aufgerufen wurde.

Suco-X

BeitragFr, Jul 14, 2006 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ansonsten lassen sich Rekursive Funktionen auch vermeiden. Ist zwar nicht so gemütlich, bietet aber viele Vorteile.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
 

X0r

BeitragFr, Jul 14, 2006 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, Return kann ja leider nicht ganz zurückkehren. Aber wie mach ich das jetzt?
Oben ist ja ein Beispiel.
 

Dreamora

BeitragFr, Jul 14, 2006 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Return kehrt aus der Funktion zurück.
Weiter rauf geht nicht, weil es ein anderer Ausführungsbaum ist auf den du nicht zugreifen kannst. Wenn du weiter zurück willst, musst du einen entsprechenden Wert zurück liefern den du bei der auswertung als "-> mach return" auswertest
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

X0r

BeitragFr, Jul 14, 2006 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: Ah. Habs jetzt. Klappt. Danke. Hab einfach bei
select eventsource()
case button_stop
stops=1
return
end select

später irgendwo in der Funktion:
if stops=1 then return

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group