Computerwissenschaften

Grundlegendes zur und Verwendung von Schleifen in der Delphi-Programmierung

Die Schleife ist ein gemeinsames Element in allen Programmiersprachen. Delphi verfügt über drei Kontrollstrukturen. die Codeblöcke wiederholt ausführen: for, repeat … bis und while … do.

 

Die FOR-Schleife

Angenommen, wir müssen eine Operation eine feste Anzahl von Malen wiederholen.

// zeige 1,2,3,4,5 Meldungsfelder
var j: integer;
beginnt
für j:=1 zu 5 do
begin
Showmessage ( ‚Box:‘ + IntToStr (j));
Ende ;
Ende ;

Der Wert einer Steuervariablen (j), die eigentlich nur ein Zähler ist, bestimmt, wie oft eine for-Anweisung ausgeführt wird. Das Schlüsselwort für das Einrichten eines Zählers. Im vorhergehenden Beispiel wird der Startwert für den Zähler auf 1 gesetzt. Der Endwert wird auf 5 gesetzt.
Wenn die for-Anweisung ausgeführt wird, wird die Zählervariable auf den Startwert gesetzt. Delphi prüft dann, ob der Wert für den Zähler kleiner als der Endwert ist. Wenn der Wert größer ist, wird nichts unternommen (die Programmausführung springt zur Codezeile unmittelbar nach dem for-Schleifencodeblock). Wenn der Startwert kleiner als der Endwert ist, wird der Hauptteil der Schleife ausgeführt (hier: das Meldungsfeld wird angezeigt). Schließlich addiert Delphi 1 zum Zähler und startet den Vorgang erneut.

Manchmal ist es notwendig, rückwärts zu zählen. Das Schlüsselwort downto gibt an, dass der Wert eines Zählers bei jeder Ausführung der Schleife um eins dekrementiert werden soll (es ist nicht möglich, ein anderes Inkrement / Dekrement als eins anzugeben). Ein Beispiel für eine for-Schleife, die rückwärts zählt.

var j: Ganzzahl;
beginnen ,
für J:=5 downto 1 do
begin
Showmessage ( ‚T minus‘ + IntToStr (j) + ’s‘);
Ende ;
ShowMessage (‚Für ausgeführte Sequenz!‘);
Ende ;

Hinweis: Es ist wichtig, dass Sie den Wert der Steuervariablen in der Mitte der Schleife niemals ändern. Dies führt zu Fehlern.

 

Verschachtelte FOR-Schleifen

Das Schreiben einer for-Schleife innerhalb einer anderen for-Schleife (Verschachtelungsschleifen) ist sehr nützlich, wenn Sie Daten in eine Tabelle oder ein Raster füllen / anzeigen möchten.

var k, j: ganze Zahl;
begin
// Diese Doppelschleife wird 4×4=16 Mal ausgeführt
für k:=1 bis 4 do
für j:=4 downto 1 do
ShowMessage (‚Box:‘ + IntToStr (k) + ‚,‘ + IntToStr (j));
Ende ;

Die Regel zum Verschachteln für die nächsten Schleifen ist einfach: Die innere Schleife (j Zähler) muss abgeschlossen sein, bevor die nächste Anweisung für die äußere Schleife angetroffen wird (k Zähler). Wir können dreifach oder vierfach verschachtelte Schleifen oder sogar mehr haben.

Hinweis: Wie Sie sehen, sind die Schlüsselwörter begin und end im Allgemeinen nicht unbedingt erforderlich. Wenn Anfang und Ende nicht verwendet werden, wird die Anweisung unmittelbar nach der for-Anweisung als Hauptteil der Schleife betrachtet.

 

Die FOR-IN-Schleife

Wenn Sie über Delphi 2005 oder eine neuere Version verfügen, können Sie die „neue“ Iteration für Elemente in Sammlungen über Container verwenden. Das folgende Beispiel zeigt die Iteration über Zeichenfolgenausdrücke. Überprüfen Sie für jedes Zeichen in der Zeichenfolge, ob das Zeichen entweder ‚a‘ oder ‚e‘ oder ‚i‘ ist.

const
s=’Über Delphi-Programmierung‘;
var
c: char;
beginnt
für c in s tun
beginnen ,
wenn c in [ ‚a‘, ‚e‘, ‚i‘] dann
beginnen
// Etwas
Ende ;
Ende ;
Ende ;

 

Die WHILE- und REPEAT-Schleifen

Manchmal wissen wir nicht genau, wie oft eine Schleife durchlaufen soll. Was ist, wenn wir eine Operation wiederholen möchten, bis wir ein bestimmtes Ziel erreicht haben?

Der wichtigste Unterschied zwischen der while-do-Schleife und der repeat-till-Schleife besteht darin, dass der Code der repeat-Anweisung immer mindestens einmal ausgeführt wird.

Das allgemeine Muster beim Schreiben einer Wiederholungsschleife (und einer while-Schleife) in Delphi lautet wie folgt:

begin begin
Anweisungen wiederholen ;
Ende ;
bis Bedingung=wahr

während Bedingung=true do
beginnen
Aussagen;
Ende ;

Hier ist der Code, mit dem 5 aufeinanderfolgende Meldungsfelder mit Wiederholung bis angezeigt werden:

var
j: Ganzzahl;
begin
j:=0;
wiederhole
begin
j:=j + 1;
ShowMessage (‚Box:‘ + IntToStr (j));
Ende ;
bis j> 5;
Ende ;

Wie Sie sehen können, wertet die Wiederholungsanweisung eine Bedingung am Ende der Schleife aus (daher wird die Wiederholungsschleife mit Sicherheit mindestens einmal ausgeführt).

Die while-Anweisung wertet dagegen eine Bedingung am Anfang der Schleife aus. Da der Test oben durchgeführt wird, müssen wir normalerweise sicherstellen, dass die Bedingung sinnvoll ist, bevor die Schleife verarbeitet wird. Wenn dies nicht der Fall ist, kann der Compiler entscheiden, die Schleife aus dem Code zu entfernen.

var j: Ganzzahl;
begin
j:=0;
während j <5 ist ,
fange
j an:=j + 1;
ShowMessage (‚Box:‘ + IntToStr (j));
Ende ;
Ende ;

 

Unterbrechen und fortfahren

Die Prozeduren Break und Continue können verwendet werden, um den Fluss sich wiederholender Anweisungen zu steuern: Die Prozedur Break bewirkt, dass der Kontrollfluss eine for-, while- oder repeat-Anweisung beendet und bei der nächsten Anweisung nach der Schleifenanweisung fortfährt . Weiter ermöglicht es dem Steuerungsfluss, mit der nächsten Iteration der Wiederholungsoperation fortzufahren.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.