FreeBasic: If Abfragen
Wenn das Programm kontrollieren soll, ob eine Bedingung erfüllt ist, oder nicht, nutzt man die If-Abfrage.
Der Sinn und Zweck von If
BearbeitenWir 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
BearbeitenEs 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
BearbeitenWer viele Elseif-Abfragen hintereinander nutzt, sollte lieber die "Select Case-Abfrage" nutzen, weil man dann weniger Code schreiben muss.
Aufbau
Bearbeitenselect 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
Bearbeitendim 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
BearbeitenMan 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
Bearbeitendim 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
BearbeitenMan 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.