Aus Funktion zurückkehren
Übersicht

X0rBetreff: Aus Funktion zurückkehren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aus Funktion zurück springen mit Return und aus einer Schleife mit Exit. Da hat sich nichts geändert (in Bezug auf BB) | ||
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und wie macht man das mit verzweigten Funktionen?
funktion a() print"A" a end function |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, Return kann ja leider nicht ganz zurückkehren. Aber wie mach ich das jetzt?
Oben ist ja ein Beispiel. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group