FreeBasic: If Abfragen

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Wenn das Programm kontrollieren soll, ob eine Bedingung erfüllt ist, oder nicht, nutzt man die If-Abfrage.

Der Sinn und Zweck von If[Bearbeiten]

Wir hatten bereits erwähnt, wie man mit Input Eingaben einliest. Das war zwar gut, aber was bringt einem jetzt das Eingelesene? Man könnte zum Beispiel ein Passwort abfragen. Aber wie weiter? Mit If kann man unter anderem auf etwas reagieren.

dim passwort as string
input passwort
if passwort = "test" then
   print "Du hast das richtige Passwort eingegeben."
else
   print "Das Passwort ist falsch"
end if
sleep

Kompilieren, Ausführen, und das Passwort eingeben. Je nachdem was man eingibt, bekommt man einen anderen Text zu sehen. Die If Abfrage funktioniert wie folgt:
Zuerst schreibt man If, danach die Bedingung mit Vergleichsoperatoren also =, <>, <, >, => und <= danach then und schließlich in der nächsten Zeile die Befehle. Abschließend muss "end if" gesetzt werden, sonst bekommt man Fehler um die Ohren geworfen.

Mehrere Bedingungen mit Elseif[Bearbeiten]

Es lassen sich auch mehrere Bedingungen in einer If-Abfrage stellen. Hierzu benutzt man Elseif. Es funktioniert wie die If-Abfrage am Anfang, nur dass diese zwischen "if" und "else" stehen muss. Erläutern wir das an einem Beispiel:

dim passwort as string
input "Passwort: ", passwort
if passwort = "test" then
   print "Du hast das richtige Passwort eingegeben."
elseif passwort = "idiot" then
   print "Ich lass mich nicht einfach so von dir beleidigen."
else
   print "Das Passwort ist falsch"
end if
sleep

Dieser Quellcode wurde von Stueber am 22.03.2009 mit der Freebasic Version 0.20b getestet.


Elseif Funktioniert wie If, nur dass man mehrere verwenden kann. Zum Abschluss noch Else was "ansonsten" bedeutet. Wenn nichts zutrifft wird das ausgeführt.

Select Case-Abfragen[Bearbeiten]

Wer viele Elseif-Abfragen hintereinander nutzt, sollte lieber die "Select Case-Abfrage" nutzen, weil man dann weniger Code schreiben muss.

Aufbau[Bearbeiten]

select case variable
case Inhalt der Variable
   (Bereich wird ausgeführt, wenn Inhalt der Variable übereinstimmt)
case Inhalt der Variable
   (Bereich wird ausgeführt, wenn Inhalt der Variable übereinstimmt)
 ...
end select

Beispiel[Bearbeiten]

dim passwort as string
passwort = "hallo"
select case passwort
case "hallo"
   print "Du hast also hallo geschrieben"
case "Mist"
   print "Wieso soll dein Passwort Mist sein?"
end select
sleep

Ist der Inhalt der Variabel passwort$ gleich "Mist", wird "Wieso soll dein Passwort Mist sein?" ausgegeben.

Benutzen von Operatoren[Bearbeiten]

Man kann bei den Bedingungen auch andere Operatoren als "=" benutzen:

  • > größer als
  • < kleiner als
  • <> ungleich
  • >= größer gleich
  • <= kleiner gleich

Man sollte aber beachten, dass alle aufgezählten Operatoren (außer = und <>) nur mit Zahlen funktionieren.

Beispiel[Bearbeiten]

dim zahl as integer
zahl = 7
if zahl > 6 then
   print "Zahl ist größer als 6"
else
   print "Zahl ist kleiner als oder gleich 6"
end if

Da die Variable zahl einen Wert hat, der größer als 6 ist, wird "Zahl ist größer als 6" ausgegeben.

Mehrere Bedingungen[Bearbeiten]

Man kann nicht nur eine Bedingung festlegen. Aber ein Beispiel sagt mehr als tausend Worte:

dim as integer a, b
if a < b or a > b then
  print "A ist größer als B oder andersherum!"
end if

Man verknüpft beide Bedingungen mit or im Beispiel. Das bedeutet wenn die erste oder die zweite oder beide Bedingungen wahr sind, wird der If Block ausgeführt. Es gibt noch drei weitere Verknüpfungen: And, Xor und Not. And verbindet zwei Bedingungen, aber nur wenn beide wahr sind, wird ausgeführt. Xor bedeutet wenn eine Bedingung wahr ist, wird ausgeführt aber wenn es beide sind, wird nicht ausgeführt. Mit einem vorangestelltem Not werden die Wirkungen von And, Xor und Or umgedreht. Also wird bei "not or" nur noch ausgeführt, wenn keine Bedingung war ist.