RGSS für Dummköpfe/Der Kontrollfluss Teil I

Aus Scientia
Wechseln zu: Navigation, Suche
{{{TITEL}}} {{{LEVEL}}}
Thematik {{{THEMA}}}
Vorraussetzungen Programme: {{{TOOL}}}

Fähigkeiten: {{{VOR}}}


Einleitung

Unsere kleinen Variablen und Anzeigeprogramme wurden Zeile für Zeile ausgeführt, sie waren nicht interaktiv und zeigten lediglich einen Text an. Echte Programme sind anders. Sie interagieren mit dem Benutzer und anderen Dingen um das erwünschte Ziel zu ereichen. Ruby (und alle höheren Programmiersprachen) stellen Befehle (commands) vor die wir benutzen können um unserem Script interaktivität hinzuzufügen, hauptsächlich benutzt es bedingte Aussagen und loops. Eine bedingte Aussage (expression) überprüft grundsätzlich ob eine Bedingung erfüllt ist. Ist sie erfüllt werden bestimmte Kommandos gegeben, in anderen Fällen werden die übrigen Kommandos ausgeführt, oder gar keine. Loops oder auch Schleifen erlauben dir einen Block immer und immer wieder von einem Punkt an durchlaufen zu lassen, bis eine gewisse Bedingung erfüllt worden ist. Loops und bedingte Aussagen sind die Eckpfeiler des Programmierens, wenn du sie nicht lernst bleibst du ein Noob bis ans Ende deines Lebens!

Boolean Ausdrücke

Ein Boolean’scher Wert, ist ein „value“ der „true“ oder „false“ sein kann. Denk an einen Schalter, den man an oder aus stellen kann, oder besser noch einen Pfad, der nach links oder rechts geht. Booleans besitzen keine Grauzonen. Alles ist schwarz oder weiß. Du könntest gefragt werden "Ist duh Alex???", Es gibt zwei mögliche Antworten "lol Yep, bin ich!!!", oder "Nö, bis’ du’s???". Hätten wir eine Booleansche Variable, genannt ist_du_alex?, (Variablen dürfen keine Leerzeichen haben!!!!!!!) könnte sie den Wert „true“ haben, wenn du Alex bist, oder „false“, wenn du es nicht bist. Macht keinen Sinn, ich weiß! Versuchen wir was einfacheres, die mathematische Aussage lautet "1 ist gleich 2" und ist “false”, während die Aussage "1 ist gleich 1" wahr ist. Hier ein paar weitere Aussagen, die wahr oder falsch sein können.

"3 ist größer als 2"
"98 ist gleich 89"
"0.01 ist kleiner als 0.1"
"3 ist kleiner oder gleich 3"
# beachtet das „oder“, denn nur eines der beiden muss stimmen!
# 5 Klasse Mathematik gez. Max Jet

Du weißt bestimmt welche wahr oder falsch sind, also “true” oder “false”. Falls nicht, sieh dir diese Aussage an: "RGSS für Dummköpfe ist nicht gleich RGSS für Idioten". Beim Programmieren können wir zwei “values“ vergleichen um einen Boolean’schen Wert zu erhalten, der den Vergleich auswertet. Wir nutzen "==" um Gleichheit anzudeuten. Erinnerst du dich, als ich über Zuweisung von Werten an Variablen gesprochen habe? Operand = heißt zugewiesen und nicht gleich. "var = 5", bedeutet, dass der Wert fünf der Variabel var zugewiesen wird. "var == 5" allerdings heißt 5 ist gleich Variabel var! Versuchen wir ein Beispiel

p 1 == 1

Angezeigt wird 'true', die Aussage ist richtig. Wir haben hier nämlich RGSS befohlen "1 ist gleichl 1" auszuwerten, so wie wir die Aussagen vorher bewerten ließen. Ändere nun beide Zahlen und sieh dir das Resultat an. "p 1 == 4" würde falsch ergeben „false“, p "0.1 == 0.1" würde „true“ ergeben. Strings lassen sich auch benutzen "cow" == "cow" oder 1 == cow. Wirkliich einfach! Die Aussage kann wahr oder falsch sein und RGSS wertet sie für uns aus! Wir können anstatt dem Operanden für Gleichstellung "==", nutzen wir nun ">" für größer als, "<" für kleiner als, ">=" für größer ODER gleich, "<=" fürkleiner oder gleich "!=" für ungleich. Diese Beispiel werden helfen

p 1 > 2 # false
p 5 == 5 # true
p 0 >= 0 # true
p 4 < 1 # false
p -19 <= 0 # true
p 1 == 8 # false
p 1 + 3 == 2 + 2 # true
p 4 != 7 # true

Ganz einfach. All das sind Boolean’sche Aussagen, die wahr oder falsch sein können “true” oder “false”.Die Aussagewerte Boolean’scher Aussagen, können auch in Boolean’schen Variablen gehortet werden.

my_bool1 = 9 == 9
my_bool2 = 3 <= 1
my_bool3 = true 
p my_bool1 # true
p my_bool2 # false
p my_bool3 # true

Ich habe einfach Boolean’sche Werte in Booleanschen Variabeln eingefügt, dadurch wolltei hc dir den Unterschied zwischen Zuweisungen "=" und Gleichheit "==" zeigen. Denk daran, dass wir auch falsche oder wahre Werte in Variablen einfügen können, genauso, wie ich es mit my_bool3 gemacht habe. Du kannst auch mehrere Aussagen auf einmal auswerten lassen. Du kannst "and" für und, "or" für oder und "not" für nicht verwenden. Platziere ein "and" zwischen zwei Aussagen und die Aussage (statement1 und statement2) warden als „true“ ausgewertet, sofern sie denn wirklich wahr sind, aber auch zu „false“ wenn eine der beiden, oder gar alle beide flasch sind.

Beispiel

p 1 == 1 and "hello" == "hello" # true
p 1 > 5 and 5 >= 1 # false
p 9 < 3 and 6 == 3 # false

Platzierst du ein oder zwischen beide Aussagen wird „true“ angezeigt, wenn mindestens eine der beiden Aussagen korrekt ist (statement1 or statement2).

p 1 == 1 or "hello" == "hello" # true
p 1 > 5 or 5 >= 1 # true
p 9 < 3 and 6 == 3 # false

Zuletzt platziere ein "not" vor einer Aussage und diese (not statement1) wird als „true“ ausgewertet, wenn das Original (statement1) als “false” ausgewertet wurde, ebenso aber auch als “false”, wenn die Originalaussage “true” war. Mit anderen Worten es dreht die Aussage um. "not 1 == 1" ist das Gleiche, wie "1 != 1" oder "1 ist nicht gleich 1", was falsch ist.

Beispiel

p not 1 == 1 # false
p not 4 < 2 # true
p not (3 <=  # false

Im letzten Beispiel habe ich mich der Klammer um einer Aussage bedient, eine gute Übung damit man deinen Code spatter besser lesen kann, besonders, wenn 'and's oder or's gebraucht werden. Noch ein Sache solltest du über "and", "or" und "not" wissen; du kannst sie abändern in &&, || und !. es gibt einen Unterschied in der Priorität zwischen der Zeichenform und der Wortform, aber das ist im Moment nicht so wichtig. (Anm. Max Jet: Erinnert ihr euch an Punkt vor Strichrechnung Mathematik vierte Klasse? Auch in Programmiersprachen, werden Dinge unterschiedlich wichtig behandelt und haben eine gewisse Hirarchie.)Grundsätzlich bedeutet "&&" das gleiche, wie "and", "||" ist wie "or" und "!" ist wie "not". Warum aber neutzen wir zwei &s und zwei |s anstatt einem? Nun, beide & und | besitzen unterschiedliche Bedeutungen in Ruby! Verwechsel nicht && mit &! (Anm. Max Jet: Du hast ja = auch nicht mit == gleichgesetzt oder?) Hier ein paar alte Beispiele mit den neuen Zeichen.

p 1 == 1 && "hello" == "hello" # true
p 1 > 5 || 5 >= 1 # true
p !(4 < 2) # true

Das letzte Beispiel ist interessant, "not 4 < 2" funktioniert, aber "! 4 < 2" tut es nicht. ! besitzt eine höhere Priorität "<" und dann "not". Also liest RGSS "! 4 < 2" als "das Gegenteil von „true“ ist weniger als 2", warte… das Gegenteil von wahr?? Nun, seht ihr, jeder Wert in RGSS ist wahr, außer, wenn er falsch ist. Der Wert von 4 ist an sich eigentlich wahr. Verstehst du? Ach, mach dir keine Sorgen! Vergiss die Prioritäten. Das mit den Klammern wirst du noch verstehen (oder solltest du, wenn du Mathe hattest).

Wichtige Notiz

= ist nicht gleich ==

Ich weiß ich habe es schon gesagt, aber das ist eine wichtiger Punkt im Programmieren. Selbst Profis, die bei Microsoft arbeiten, verwechseln manchmal = mit ==. Dieses einfache Gleichsetzungszeichen = wird nur bei Zuweisung von Werten verwendet, nicht vergessen; und das doppelte Zeichen == wird benutzt um Gleichheit auszudrücken. Jeder macht diesen Fehler irgendwann, daher ist es eine gute Idee mal ein Programm, dass nicht läuft nach diesen Zeichen hin zu untersuchen. Vielleicht steht irgendwo =, wo == stehen sollte...

Zusammenfassung

  • Ein Boolean’scher Ausdruck ist ein Ausdruck, der wahr oder falsch sein kann, „true“ oder „false“.
  • Vergleichsoperanden (>, ==, <) werden gebraucht um zwei Werte, „values“, zu vergleichen und sie erzeugen einen Boolean’schen Ausdruck. („True“, „false“)
  • Komplexere Boolean’sche Ausdrücke schafft man durch Kombination, anhand folgender Operanden && (und) oder ||. (oder).

Vorlage:RGSS-Tut-Max