Schleifn (Programmierung)
Der Artikl is im Dialekt Obaboarisch gschriem worn. |
Schleifn han wichtige Strukturn in de hähan Progammiasprachn. Damit wern Befehle imma wiada wiadahoid. Wenn ma schaugt, wia oft de Befehle wiadohoid wern ko ma vier Artn untascheidn:
- Schleifn, de solang laffa, wia a Laufbedingung erfuid is.
- Schleifn, de laffa, bis a Abbruchbedingung erfuid werd.
- Schleifn mit na vorher festglegtn Anzoi vo Wiadahoilunga.
- Endlosschleifn, de Befehle wern solang wiadhoid, bis as Programm vo außn beendet werd.
Des weidan ko ma untascheidn zwischn da
- kopfgsteiertn Schleifn, do werd scho voa da easchtn Ausfiarung priaft, ob de Bedingung erfuid is. Des hoasd, es ko a bassiern, das de Befehle in da Schleifn (da Schleifnkörper) iabahapts ned ausgfiard wern.
- fuaßgsteierte Schleifn, do werd da Schleifnkörper auf jedn Foi oamoi ausgfiard und eascht danach priaft, ob a weidana Schleifndurchlauf gmacht wern soi.
De Abbruch- bzw. Laufbedingung werd nua am Ofang bzw. am End vo da Schleifn iabapriaft. Da Schleifnkörper werd auf jedn Foi komplett ausgfiad, a wenn scho vor am End vo da Schleifn de Abbruchbedingung erfuid, bzw. de Laufbedingung nimma erfuid werd.
Wichtige Schleifn in de gängign Programmiersprachn
WerkelnDe Beispui han in Pseudocode gschrim.
Do-While-Schleifn
WerkelnDe Do-While-Schleifn is a fuaßgsteierte Schleifn, de solang laft, wia de ogemne Bedingung erfuid is. Normalaweis werd zwischn de Wearte Do und While dea Befehl oda dea Befehlsblock gschriem und noch des While de Laufedingung.
Oiso hoasds: Dua de Befehle 'solang ausfiarn wia de Bedingung erfuid werd.
DO Schleifenrumpf WHILE Logischer Ausdruck
Repeat-Until-Schleifn
WerkelnDe Repeat-Until-Schleifn untascheid se vo da Do-While-Schleifn nua dodurch, daß solang ausgfiard werd, bis de ogemne Bedingung erfuid is. In vui Progammiasprochn gibts koa Do-While-Schleifn, do ko ma dann statt dessn a Repeat-Until-Schleifn heanemma, ma bracht nua de Bedingung invertieren. Des gehd natirle genauso, wenn ma koa Repeat-Until-Schleifn sondan nua de Do-While-Schleifn zua Vafiagung hod. Wiada stenga de Befehle zum ausfiarn, oiso da Schleifnkörper zwischn de Wearta, de Bedingung noch dem Until.
S' bedeit oiso: Wiadahoi de Befehle solang bis de Bedingung erfuid is.
REPEAT Schleifenrumpf UNTIL Logischer Ausdruck
While-Do-Schleifn
WerkelnDe While-Do-Schleifn is a kopfgsteierte Schleifn, de Bedingung werd glei nach dem eileitndn While ogem, da Schleifnkörper kimmt dann nach dem Do. Wenns in na Progammiasproch koane kopfgsteierten Schleifn ned gibt ko ma a a fuaßgsteirte Schleifn mit na Entscheidung (if-then) kombiniern und so vor der Schleifn entscheidn, obs iabahapts ausgfiard wern soi.
WHILE Logischer Ausdruck DO Schleifenrumpf.
Vasteh ko mas ois: Solang de Bedingung guid, dua de Befehle ausfiarn.
For-Schleifn
WerkelnBei da For-Schleifn steht am Ofang scho fest, wia oft de Schleifn wiadahoid werd. Dazua werd glei nach dem For a Zählvariable ogem, dazua a Start- und a Endwert. Bei jedem Durchlauf werd de Zählvariable um oans, oda an angebnen Wert erhöht. De For-Schleifn werd dann solang wiadhoid, bis de Zählvariable an Endwert erreicht hod. S' gibt a Variantn, wo rickwärts zejd werd, z. B. mit dem Wort downto oda mit na negativn Schrittweitn. In Sprachn, wos koa For-Schleifn ned gibt ko mas mit eingle jeda andern Schleifnform simuliern, wenn ma se sejba um de Zählvariable kimmert.
Ma kos se merka ois: Fia de Zoin vo ... bis ... dua de Befehle ausfiarn.
FOR Iterator:=Anfangszahl TO Endezahl STEP Schrittweite DO Schleifenrumpf
Abbruch- und Laufbedingunga
WerkelnWenn ma ned absichtlich a Endlosschleifn programmiern mecht muaß da Schleifnkörper an Teil vo da Abbruch- bzw. Laufbedingung vaeandan. Nur so ko de Bedingung irawanamoi dafuid wern und de Schleifn zua am End kemma. Bei da for-Schleifn kimmat se de Progammiasprach sejba um de Forderung.
Vo dem Woat Schleifn kimmt a da Satz: Da Rechner hod se aufghängt. Da Progammiara hod am Rechna dann mid am Programmfehler aus na Schleifn an Galgn bundn.
In manche Programmiasprochn gibts extra Anweisunga fia Endlos-Schleifn. Ansunstn ko ma irgend a Schleifn heanemma und a Bedingung dazuaschreim, de ollawei wahr bzw. foisch is. Oiso true = false fia a Abbruchbedingung oda 1 = 1 fia a Laufbedingung.
A echte Endlosschleifn werd nua vo ejsane Einfliass obbrocha, ois am Interrupt, am Reset, am Stromausfall oda am sonstigen Defekt vo dem programmiertn Gerät.
Normalaweis werd da Schleifnkörper imma komplett ausgfiad. Wenn ma des ned mächt, ko ma de Schleifn a vorzeitig valossn. Dodafia gibts in einige Sprachn an Befehl break, manchmoi is a a goto mit am Sprungziel aussahoib vo da Schleifn erlaubt.
Schleifn und GoTo
WerkelnDe Schleifn wurdn in de historischn Progammiasprochn eigfiad, um des bis dohi weid vabreitete GoTo zum vameidn. S' GoTo hod Programme ab na gwissn Greß uniabasichtlich gmacht, domit is de Fehlersuach und Erweiterung imma schwieriga worn. Ma ko aba olle Schleifn a mit da Vawendung vo GoTo simuliern. Letztendlich bassiert des a, wei a de moderna Prozessorn koane eigna Befehle via de Schleifn kenna, sondan de Schleifn vom Compiler bzw. Interpreter in Sprungbefehle in da Maschinasprach umgsetzt wern.