
Übersicht
Einleitung
1. Grundlagen
2. Variablen
3. Schleifen
4. Entscheidungen
5. Struktur
6. Eingabe
7. Gfx-Grundlagen
8. Bilder anzeigen
9. Kollision
10. Sound & Musik
11. Dateien
12. Multiplayer

Spiele
Grafik
Mathe
Netzwerk
String
Verschiedenes
|
Logische Entscheidungen
© Robert Gerlach 2001-2002
www.robsite.de
Immer wenn zwischen mehreren Sachen entschieden werden muss, macht man das mit folgenden
Befehlen:
If...Then
Oder auf deutsch: Wenn...Dann:
If bedingung = erfüllt
Then /mach irgendwas\
|
Das ist die einfachste Form. Wenn man mehrere Anweisungen nach dem Endif
haben will, nehme man das hier:
If bedingung = erfüllt
Then
.
..
:code:
..
.
Endif
|
Das Then kann man auch weglassen, trägt aber recht stark zur Übersichtlichkit bei...
Es geht aber noch weiter. Zum einen gibts noch ein "Anderfalls", das alles einschließt
was vorher nicht abgefragt wurde und ein Elseif, was das gleiche wie ein
If ist, nur platzsparend in das If...Endif Konstrukt eingebaut:
x = Input("Gib
eine Zahl ein: ") ; Eingabe der zu überprüfenden
Zahl.
If x = 1 Then
;
Wenn x = 1 ist...
Print "x = 1"
ElseIf x = 2 Then
;
Oder wenn x = 2 ist...
Print "x = 2"
Else
;
Wenn es etwas anderes ist als das, was davor überprüft wurde.
Print "x ist weder 1
noch 2"
EndIf
|
Hiermit kann man schon viel machen. Wenn man aber eine Sache auf sehr viele Möglichkeiten
überprüfen will, sollte man platzsparender Weise Select...Case einsetzen.
Select...Case
Hat die gleiche Funktion wie If..Endif, ist nur auf mehrere Überprüfungen ausgelegt.
x = Input("Gib
Zahl: ") ; Eingabe
der zu überprüfenden Zahl.
Select x
;
x "auswählen".
Case 2
; Überprüfen ob x 2 ist.
Print "x ist 2"
Case 3
; Überprüfen ob x 3 ist.
Print "x ist 3"
Case 5
; Überprüfen ob x 5 ist.
Print "x ist 5"
Default
;
Wie Else. Wenn alles andere nicht eintrifft...
Print "x ist weder 2
noch 3 und erst recht nicht 5. Dumm das..."
End Select
|
Jetzt kannst du den Computer einfache Entscheidungen fällen lassen. Jubel.
Was aber wenn du mehrere Sachen überprüfen willst? Also Wenn irgendwas so ist und
etwas anderes irgendwie ist oder etwas ganz anderes ganz anders ist dann? Dann
schreibt man und und oder einfach in englisch...:
If b = 529
And c = 5 Or
e# = 2.3 Then
Print "bopp"
|
Diese Operatoren nennen sich auch bool´sche Operatoren, weil ein Herr George Bool, seines
Zeichens Mathematiker, sie "erfunden" hat um Operationen zwischen logischen Werten (wahr/falsch)
zu ermöglichen. Dabei werden die Bits jedes Wertes verglichen. Nun noch eine kleine Erklärung,
wie das ganze intern abläuft. Eigentlich unwichtig, aber dadurch sieht man die Befehle nicht einfach als englisches
und sondern als Befehl mit dem man auch in anderen Situationen rechnen kann. Nun denn:
Bei AND
Wert1 Wert2
Ergebnis (Wert1 AND wert2)
wahr wahr
wahr
wahr falsch
falsch
falsch wahr
falsch
falsch falsch
falsch
|
Bei And müssen beide Werte übereinstimmen, damit das Ergebnis True/wahr/1 ist.
Bei OR
Wert1 Wert2
Ergebnis (Wert1 OR wert2)
wahr wahr
wahr
wahr falsch
wahr
falsch wahr
wahr
falsch falsch
falsch
|
Bei Or muss nur einer der beiden Werte True sein, damit das Ergebnis auch True ist.
Nun noch ein bool´scher Operator, den man nicht so oft braucht. Das exklusive oder,
Xor. Hier ist das Ergebnis immer dann wahr, wenn sich die beiden Werte unterscheiden.
Bei XOR
Wert1 Wert2
Ergebnis (Wert1 XOR wert2)
wahr wahr
falsch
wahr falsch
wahr
falsch wahr
wahr
falsch falsch
falsch
|
Xor kann man gut dazu benutzen um einen Wert immer zwischen 2 Zuständen hin und her
zu schalten:
Angenommen x ist 1. Dann wird diese 1 mit der vorgegebenen 1 verglichen und als Ergebniss 0
ausgegeben, weil sie ja gleich sind. Nun ist x also 0 und es wird wieder mit 1 verglichen. Da
die beiden Werte nun unterschiedlich groß sind, hat x wieder den Wert 1 u.s.w.
Das gleiche kann man auch noch so machen:
Das aber nur nebenbei...
Die vier Grundoperatoren ( + - * / ) zusammen mit dem Potenzieren (^) wurden im
Variablenkapitel erklärt, hinzu kommen
jetzt noch ein paar Vergleichsoperatoren für die Entscheidungen:
> Größer
>= Größer oder gleich
= Gleich
<= Kleiner oder gleich
< Kleiner
<> Ungleich
|
Diese kann man auch wieder ganz normal einsetzen:
If x < y Then
Print "x ist kleiner als y"
|
Auch kann man zur besseren Lesbarkeit oder bei Variablen die nur 1 und 0 sein können, statt
1 True und statt 0 False schreiben.
Zusammenfassung
; Logische (ja - nein) Entscheidungen
kann man z.B. mit If...Endif treffen:
If x = 1 Then
Print "x ist 1. Jubel!"
ElseIf x = 2 Then
Print "x ist 2. Auch
Jubel!"
Else
Print "x ist weder 1
noch 2. So ein Mist aber auch..."
Endif
; Wenn man eine Variable auf sehr viele Bedingungen
hin überprüfen will, nehme man select...Case:
Select x
Case 2
Print "x ist 2"
Case 3
Print "x ist 3"
Default
Print "x ist weder 2
noch 3..."
End Select
; Die drei boolschen Operatoren sind:
And (und)
Or (oder)
Xor (exklusives oder. Wenn beide Werte unterschiedlich
sind, ist das Ergebnis 1, sonst 0.)
; Mit Vergleichsoperatoren kann man Variablen vergleichen:
> Größer
>= Größer oder gleich
= Gleich
<= Kleiner oder gleich
< Kleiner
<> Ungleich
|
Nun weisst du genug um auch die komplexesten Entscheidungen treffen zu lassen. Damit das Programm
danach nicht auch noch komplex zu lesen ist, gehts jetzt weiter zur Programmstruktur.
Druckversion
|
|