Entwickler-Ecke

Delphi Tutorials - Schleifen


Chatfix - Mo 04.11.02 22:12
Titel: Schleifen
So nun mein 3. Tutorial. Ich hoffe es hilft den Anfängern etwas weiter...

1. Was sind Schleifen, und welche Arten gibt es?

Schleifen wiederholen eine oder mehrere Anweisungen sooft, bis eine Bedingung eintritt, oder eine Variable die Schleife beendet. In Delphi gibt es 3 verschiedene Schleifen:


2. Bedingungen (Ausdrücke)

Um die ersten beiden Schleifen zu beenden benötigen wir Bedingungen. Eine Bedingung wird in Delphi auch Ausdruck genannt. Bedingungen ergeben immer true (wahr) oder false (falsch).

Bedingungen werden mittels Vergleichsoperatoren geprüft und können mit Booleschen Operatoren kombiniert werden. Wenn man Bedingungen kombiniert, muss man jede einzelne Bedingung in Klammern schreiben.

Einige Vergleichsoperatoren:

Einige Boolesche Operatoren:

Beispiele für Bedingungen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  zahl: Integer;
  text: String
begin
  i := 10;
  text := 'Dies ist ein Text'

{ BEDINGUNGEN: }
i = 10 //true
not i = 9 //true
i = 5 //false
i > 5 //true
text = 'Das ist ein Text' //false
(text = 'Dies ist ein Text'and (zahl = 10//true
(text = 'Das ist ein Text'or (zahl = 10//true

So ich denke das reicht als Erklärung für Bedingungen.


3. Repeat-Until-Schleife (Fußgesteuerte Schleife)

Die Repeat-Until-Schleife wird immer mindestens einmal durchlaufen, da die Bedingung erst am Ende der Schleife geprüft wird. Ergibt die Bedingung true, so wird die Schleife beendet. Ergibt die Bedingung false wird die Schleife nocheinmal durchlaufen.

Beispielcode:

Delphi-Quelltext
1:
2:
3:
repeat
  {...}
until BEDINGUNG(EN);



4. While-Do-Schleife (Kopfgesteuerte Schleife)

Die While-Do-Schleife prüft die Bedingung immer am Anfang eines Schleifendurchlaufes. Es kann also vorkommen, das die Schleife nicht ausgeführt wird. Anders als die Repeat-Until-Schleife wird diese Schleife nur ausgeführt/wiederholt wenn die Bedingung true ergibt.

Beispielcode:

Delphi-Quelltext
1:
2:
while BEDINGUNG(EN) do
  {...}

Beachten Sie das Sie mehrere Anweisungen in begin und end; einschließen müssen.


5. For-To-Do- / For-DownTo-Do-Schleife (Zählschleife)

Die Zählschleife wird als einzigste Schleife nicht direkt mit einer Bedingung beendet. Für die Zählschleife benötigt man ebenfalls eine lokale Variable ordinalen Typs ohne Qualifizierer (z. B. Integer oder Byte). Es hat sich so eingebürgert, das man die Variable i nennt. Weitere Zählschleifen bekommen dann die Variablennamen j, k, l, usw. Diese Namen sind jedoch keine Pflicht. Die Zählschreife ist folgendermasen aufgebaut:

Delphi-Quelltext
1:
2:
for i := ANFANGSWERT to/downto ENDWERT
  {...}

Bei jedem Schleifendurchlauf wird nun der Wert in i um eins erhöht (to) oder verringert (downto). Die Schleife wird beendet wenn der Endwert erreicht ist.

Beispielcode:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  i, j: Integer;
begin
  for i := 1 to 10 do
    {...}

  for j := 10 downto 1 do
    {...}

Beachten Sie das Sie mehrere Anweisungen in begin und end; einschließen müssen.


5. Schleifen manuell unterbrechen

Mit dem Befehl Break; in der Schleife wird die Schleife beendet.



6. Manuell zum nächsten Schleifendurchlauf wechseln

Mit Continue; können Sie vorzeitig manuell zum nächsten Schleifendurchlauf wechseln. (Auch dieser Befehl darf nur innerhalb einer Schleife definiert werden.)



So ich hoffe es ist alles fehlerfrei.
Feedbacks erwünscht.


Hami85 - Mi 24.11.04 13:20
Titel: RE - Schleifen
Moin

:wink2: Nun dieses Tutorial ist Inhaltlich sehr gut.

Vielleicht noch einpaar kleine Beispielprogramme mit einbinden.
Aber Ansonsten Perfekt :D

MFG Hami85


Chatfix - Mi 24.11.04 13:33

Danke. Du kannst gern Beispielprogramme posten :)


IngoD7 - Mi 24.11.04 14:18
Titel: Re: Schleifen
Chatfix hat folgendes geschrieben:
Schleifen wiederholen eine oder mehrere Anweisungen sooft, bis eine Bedingung eintritt, oder eine Variable die Schleife beendet.


Würde schreiben:

Schleifen wiederholen eine oder mehrere Anweisungen
- solange (While) eine Bedingung erfüllt ist oder
- bis (Repeat..Until) eine Bedingung zutrifft oder
- bis der Endwert einer Variablen (For) erreicht ist.