Winkelmann Software Blog

If Else Anweisung Freepascal

Allgemeines zur If Else Abfrage in Freepascal

Die IF Else Abfrage heißt auf Deutsch, wenn dann Abfrage. Es wird also ein Zustand der Abfragebedingung geprüft der true oder false ergibt. Trifft die Abfrage zu ist der Wert true deutsch wahr, trifft er nicht zu ist der Wert False deutsch fasch.

Abb. 1.01 Beispiel Software für IF Else Abfrage zum Download s.u.

Abb. 1.01 Beispiel Software für IF Else Abfrage zum Download s.u.

Abb. 1.01 Beispiel Software für IF Else Abfrage zum Download s.u.

Als erstes sehen wir uns die einfache IF Abfrage an.

If Abfrage

Der Lazarus Programmcode  If Abfrage

Var
X,Y : integer;
X := 1
Y := 2

IF (X >= Y) then
Begin
// Mache etwas
END;

Im Quellcode können wir gut sehen das wir eine Bedingung in den runden Klammern haben die abgefragt wird. Gelesen wird das Ganze: Wenn X größer gleich > ist dann // mache etwas.

In einer Software mit GUI General User Interface im deutsch Benutzeroberfläche müssen wir von einem Editfeld Daten als Text auslesen und die in einen Integer umwandeln. Dies geht mit der Funktion StrToInt().

Das UML Diagramm dazu:

Abb. 1.02 Das IF Else UML Diagramm

Abb. 1.02 Das IF Else UML Diagramm

 

Abb. 1.03 If Abfrage Beispiel Software

Abb. 1.03 If Abfrage Beispiel Software

In der Beispiel Software prüfe ich ob Zahl1 kleiner ist als Zahl 2. Bei dieser Abfrage kann nur das Wahre Ergebnis ausgegeben werden. Sollte ein Ergebnis unwahr sein ändert sich nicht. Damit auch bei einer zweiten Abfrage das wahr sollte die erste Abfrage wahr gewesen sein.

Die Button Click Funktion des Quellcodes

procedure TForm1.Button1Click(Sender: TObject);
begin
if (StrToInt(EdtZahl1.text)) < (StrToInt(EdtZahl2.Text)) then
BEGIN
EdtErgebnis.Text := 'Wahr';
END;
end;

Das ist noch ziemlich unschön daher gibt es noch eine IF Else Anweisung. Diese sehen wir uns als nächstes an.

IF Else Anweisung in Freepascal

Der Quellcode zur IF Else Abfrage

Var
X,Y : integer;
X := 1
Y := 2
IF (X > Y) then
Begin
// Mache etwas
END ELSE
BEGIN
// mach etwas anderes
END;

Bei der IF Else Abfrage habe ich nun den Else Teil hinzugefügt. Gelsen wird das ganze wie folgt: Wenn X größer als y Ist dann mache etwas wenn nicht dann mache etwas anderes. In meiner Beispiel Software kann ich mit der IF Else Abfrage schon mehr abfragen.

Das UML Diagramm dazu:

Abb. 1.04 UML Diagramm zur IF Else Abfrage

Abb. 1.04 UML Diagramm zur IF Else Abfrage

 

Abb. 1.05 Beispiel 3 IF Else Abfrage wahr

Abb. 1.05 Beispiel 3 IF Else Abfrage wahr

 

Abb. 1.05 Beispiel 3 IF Else Abfrage unwahr

Abb. 1.05 Beispiel 3 IF Else Abfrage unwahr

Die Button Click Funktion des Quellcodes
procedure TForm1.BtnProofA2Click(Sender: TObject);
begin
if (StrToInt(EdtIEAZahl1.text)) > (StrToInt(EdtIEAZahl2.Text)) then
BEGIN
EdtIEAErgebnis.Text := 'Wahr';
END ELSE
BEGIN
EdtIEAErgebnis.Text := 'Unwahr';
END;
end;

wir können nun schon zwischen Wahr und unwahr unterscheiden. Wenn wir aber wissen möchten, ob Zahl 1 kleiner oder größer ist benötigen wir noch eine weitere Abfrage. Die IF ELSE IF Abfrage diese sehen wir uns als letztes an.

Die IF ELSE IF Abfrage in Freepascal

Der Quellcode zur IF Else Abfrage

Var
X,Y : integer;
X := 1
Y := 2
IF (X > Y) then
Begin
// Ausgabe X größer Y.
END ELSE IF (X < Y) then
BEGIN
// Ausgabe X kleiner Y.
END;

Im ELSE Teil haben wir nun eine weitere IF Abfrage. Mit der wir prüfen können. Diese IF Else Anweisungen lassen sich auch weiter verschachteln. So könnten wir weiter prüfen ob Zahl 1 = Zahl 2 ist.

Das UML Diagramm dazu:

Abb. 1.07 Das UML Diagramm zur IF ELSE IF Diagramm

Abb. 1.06 Das UML Diagramm zur IF ELSE IF Diagramm

Kommen wir nun zu meiner Beispiel Software.

Abb. 1.08 IF ELSE If Abfrage Beispiel 1

Abb. 1.07 IF ELSE If Abfrage Beispiel 1

Abb. 1.09 IF ELSE If Abfrage Beispiel 2

Abb. 1.08 IF ELSE If Abfrage Beispiel 2

Abb. 1.09 IF ELSE If Abfrage Beispiel 2

Die Klick Funktion des Buttons

procedure TForm1.Button2Click(Sender: TObject);

begin
if (StrToInt(EdtIEFZahl1.text)) < (StrToInt(EdtIEFZahl2.Text)) then
BEGIN
EdtIEFErgebnis.Text := 'Die Zahl1 ist kleiner!';
END ELSE IF (StrToInt(EdtIEFZahl1.text)) > (StrToInt(EdtIEFZahl2.Text)) then
BEGIN
EdtIEFErgebnis.Text := 'Die Zahl 2 ist größer!';
END;
end;

Allgemeines zum Artikel:

Die UML Diagramme wurden mit der kostenlosen Software draw.io erstellt. Die Beispiel Software ist mit 7Zip gepackt und enthält keine Exe Datei. Diese kannst du mit der Lazarus IDE selber erstellen. Einfach auf den grünen Play Button drücken oder die F9 Taste zum kompilieren und starten der Software drucken.

Hier geht es zum Herunterladen der Beispiel Software. Die Software ist 644kb groß.


Beitrag kommentieren

Bitte verfasse einen Kommentar.

Dein Kommentar wird vor der Freischaltung von einem Admin moderiert.