Ü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:


x = 1 Xor x


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:


x = 1 - x


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.



Teil 5: Programmstruktur



Druckversion