Hallo,
wenn ich eine Unterroutine programmiere
Test:
...
Return
kann ich eine Unterroutine "bedingt" beenden???
Zum Beispiel eine IF-Abfrage oder so und erst wenn eine Bedingung erfüllt ist wird der "Return" ausgeführt.
Gruß MrQu
Druckbare Version
Hallo,
wenn ich eine Unterroutine programmiere
Test:
...
Return
kann ich eine Unterroutine "bedingt" beenden???
Zum Beispiel eine IF-Abfrage oder so und erst wenn eine Bedingung erfüllt ist wird der "Return" ausgeführt.
Gruß MrQu
Welche Sprache ?
Du kannst in einer Funktion einfach eine Schleife bauen, die erst verlassen wird wenn dein Wert erreicht ist, danach kommt das return.
Beispiel in C (in anderen sprachen ähnlich):
Du kannst natürlich alles abfragen, das Beispiel hier zählt nur bis 5.Code:void unterprg(void) {
int i = 0;
while(i <= 5) {
i = i+1;
// warten ...
}
}
hi,
gute Idee!!!
habs getestet - in Basic
ich will ein bit toggeln das unterprogramm darf aber nur verlassen werden wenn das bit auf 0 ist
hab ne Do - Loop Until - Schleife eingesetzt und jetzt gehts
danke
mfg MrQu
Das ist möglich, wobei man hier unterscheiden muss zwischen einer
- Unterroutine welche mit GOSUB angesprungen wird und mit Return endet
Diese wird bei jedem Return beendet. Dieses kann auch in einer IF-Abfrage sein oder auch in einer Do while oder For next Schleife. Das ist aber nicht unbedingt ein schöner Programmierstil.
oder
- Definierte SUB Routine mit
Declare Sub XY
Sub XY
...
...
End Sub
Diese SUB wird bei END SUB verlassen. Wenn man diese wie oben vorher beenden möchte, muss dies mit EXIT SUB geschehen.
hmmm, ich verstehe jetzt nicht den Unterschied zwischen
normaler Unterroutine (mit gosub) und der lösung mit der sub-routine???
hast mal n beispiel-script???
mfg MrQu
Der Unterschied ist eigentlich nur intern.
Nachteil: du kannst bei GOSUB keine Parameter mitgeben und keine lokalen Daten definieren.
Vorteil: du brauchst daher weniger Code und Speicher.