Autor Beitrag
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Mo 04.11.02 22:12 
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:
  • Repeat-Until-Schleife (Fußgesteuerte Schleife)
  • While-Do-Schleife (Kopfgesteuerte Schleife)
  • For-To-Do- / For-DownTo-Do-Schleife (Zählschleife)


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:
  • = gleich
  • <> ungleich
  • < kleiner als
  • > größer als
  • <= kleiner gleich
  • >= größer gleich

Einige Boolesche Operatoren:
  • and Bedingung gibt nur true zurück wenn alle mit and verbundenen Bedingungen true ergeben.
  • or Bedingung gibt true zurück wenn eine oder mehrere mit or verbundenen Bedingungen true ergeben.
  • not Kehrt die Bedingung um.

Beispiele für Bedingungen:
ausblenden 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:
ausblenden 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:
ausblenden 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:
ausblenden 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:
ausblenden 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.

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce


Zuletzt bearbeitet von Chatfix am Mo 17.01.11 09:54, insgesamt 1-mal bearbeitet
Hami85
Hält's aus hier
Beiträge: 16

Win XP Home
D4 Prof D7 Pers
BeitragVerfasst: 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

_________________
Einige Menschen träumen von großen Taten, während andere hell wach sind und diese Ausführen
Chatfix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Mi 24.11.04 13:33 
Danke. Du kannst gern Beispielprogramme posten :)

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Mi 24.11.04 14:18 
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.