StartTutorialsGame MakerBedingte Anweisung (if)

Bedingte Anweisung (if)

  • 2 Monaten her
  • 4Minuten

Eines der wichtigsten Elemente der Programmierung ist die bedingte Anweisung. Hierzu muss eine Bedingung überprüft und die Überprüfung bestehen, bevor eine Anweisung ausgeführt wird. Dieses Einsteiger-Tutorial erklärt, wie das geht.

Kaum ein Programm würde funktionieren, wenn es nicht in der Lage wäre, Bedingungen zu prüfen und anhand des Ergebnisses eine Anweisung auszuführen. Die if-Anweisung gehört zur elementarsten Form und sollte von jedem angehenden Programmierer beherrscht werden.

Was macht if?

Mit if prüfen wir, allgemein gesagt, eine Gegebenheit. Wenn diese unseren Vorgaben entspricht, oder nicht entspricht, folgt eine Anweisung. Das nennt man in der Programmierung eine Bedingte Anweisung.

Aufbau

Vereinfacht dargestellt, funktioniert eine if-Abfrage so:

Ein konkretes Beispiel würde so aussehen:

In diesem Beispiel prüfen wir, ob die erste Variable größer ist als die zweite. Wenn dem so ist, wird die erste Variable auf den Wert der zweiten Variable gestellt. Wenn also Variabl1 den Wert 2 hat und Variable2 den Wert 1, wird aus der Variable1 eine 1.

Bitte beachte, dass die Bedingung in runden Klammern geprüft wird, die Anweisung sich aber in geschweiften Klammern befindet.

Wenn-Dann-Sonst

Das obere Beispiel sagt nur aus: “Wenn eine Bedingung erfüllt ist, dann mache folgendes…”. Nun wollen wir aber eine Anweisung, die auch beinhaltet, was passieren soll, wenn die Bedingung nicht erfüllt ist. Dazu brauchen wir das else, was “sonst” bedeutet.

Der Anfang bleibt gleich. Wenn die Variable1 größer ist als Variable2, nimmt die Variable1 den Wert von Variable2 an. Dann kommt die Neuerung! Wenn die Bedingung nicht erfüllt wurde, dann wird nimmt die Variable2 den Wert von Variable1 an.

Damit kann man schon sehr viel anfangen. Nehmen wir an, wir haben ein Spiel für zwei Spieler. Nun können wir prüfen, ob Spieler 1 mehr Punkte hat als Spieler 2. Wenn ja, hat Spieler 1 gewonnen, wenn nein, hat Spieler 2 gewonnen, sofern kein Unentschieden möglich ist.

Doch was ist, wenn wir drei Möglichkeiten haben? Dazu gibt es Elfe if.

Else if / elseif

Gleich mal vorab: Manche Programmiersprachen wie GML verwenden else if, andere, wie PHP, elseif. Im Beispiel werde ich es getrennt schreiben.

Was haben wir hier gemacht? Wir prüfen, ob die Punktzahl von Player1 größer ist als die von Player2. Wenn ja, bekommt die Variable winner den Wert 1. Wenn dem nicht so ist, wird geprüft, ob Player2 mehr Punkte hat als Player1. Wenn das zutrifft, bekommt die Variable winner den Wert 2. Trifft das auch nicht zu, bleibt nur die Möglichkeit, dass die Werte gleich sind. Dann bekommt die Variable winner den Wert 3 und es ist unentschieden. 0 habe ich in dem Fall dafür reserviert, dass noch kein Gewinner feststeht.

Wahr oder falsch?

Damit kann man schon viele Sachen abfragen. Sehr oft müssen wir nur wissen, ob eine Variable wahr ist, oder falsch. Dazu gibt es mehrere Möglichkeiten:

Das == ist eine Boolesche Variable, die nur wahr oder falsch sein kann. In einigen Programmiersprachen ist auch das = erlaubt, aber da weiß man als Leser des Codes nicht auf Anhieb, dass es eine Boolesche Variable sein soll. 1 oder 0 könnten auch beliebige Zahlen sein. Deshalb kann man in einigen Programmiersprachen, wie GML, wie folgt abfragen:

Da gibt es ebenfalls keine Missverständnisse. Das Ganze kann man aber auch verkürzt darstellen:

Die Variable in Klammern wird hier nur auf ihre Richtigkeit geprüft. Das Ausrufezeichen davor bedeutet so viel wie “ist nicht”, in dem Zusammenhang also “ist nicht wahr”. Dazu kommen wir gleich noch einmal.

Verschiedene Ausdrücke

Mit dem bisher gezeigten kann man schon einiges anfangen, aber das reicht noch nicht. Wenn man nur dann eine Anweisung ausführen will, wenn eine Bedingung nicht zutrifft, wird es schon schwierig. Ebenso, wenn mehrere Bedingungen zutreffen sollen. Das kann man zwar mit ifs verschachteln, aber irgendwann kann das kein Mensch mehr lesen. Um solche und andere Probleme zu lösen, gibt es verschieden Ausdrücke, die man verwenden kann. Die folgenden Ausdrücke sind nicht nur für if-Anweisungen gedacht, können aber von Programmiersprache zu Programmiersprache unterschiedlich ausfallen.

Ausdruck

BedeutungBeispiel

=

ist gleichVariable = 2

!

ist nicht!Variable

==

Boolesche VariableVariable == true

&&

und(Variable1 = 1) && (Variable2 = 2)

||

oder(Variable1 = 1) || (Variable2 = 2)

^^

xor / Exklusiv-ODER(Variable1 = 1) ^^ (Variable2 = 2)

<

kleinerVariable1 < Variable2

<=

kleiner oder gleichVariable1 <= Variable2

>

größerVariable1 > Variable2

>=

größer oder gleichVariable1 >= Variable2

!=

ungleichVariable1 != Variable2

+

plusVariable + 2

minusVariable – 2

*

malVariable * 2

/

geteiltVariable / 2

++

addiert einen Wert hinzui++

subtrahiert einen Wert abi–

+=

Wert addierenVariable += 2

-=

Wert subtrahierenVariable -= 2

div

GanzzahldivisionVariable div 2

mod

zieht den Restwert multipliziert mit dem Teiler vom Anfangswert abVariable mod 2

Damit kann man schon sehr viel machen, nicht nur bei if-Abfragen.

Beispiele für Kombinationen

Das letzte Beispiel wirkt für Anfänger vielleicht etwas an den Haaren herbeigezogen, doch kommen solche Fälle immer wieder vor. Variable1 kann Gegner sein, der nicht mehr existieren darf. Variable2 kann der Spieler sein, der noch lebt und Variable3 können Lebenspunkte sein, die nur beim Levelstart auf 10 stehen. Nur in dieser Kombination hat der Spieler das Level geschafft. Wie gesagt, solche Kombinationen sind nicht ungewöhnlich.

Es gibt natürlich noch mehr Kombinationsmöglichkeiten, aber diese sollten sich anhand der Tabelle und den Beispielen ableiten lassen. Wie alles bei der Programmierung braucht auch der korrekte, effiziente Einsatz von if-Abfragen, etwas Übung. Manchmal hilft es, das Problem erst einmal als Klartext zu formulieren um dann die korrekte Abfrage zu erstellen. Als Hausaufgabe könnte man aus folgendem Text eine Abfrage mit Anweisungen basteln. Wer die Lösung hat, darf sie gerne in die Kommentare schreiben.

“Wenn Wert1 größer 0 ist und Wert2 wahr, dann soll die Variable i um 1 erhöht werden. Wenn Wert1 0 oder kleiner ist und Wert2 wahr, dann soll i um zwei erhöht werden. Wenn überhaupt nichts zutrifft, wird aus i eine Null.”

 

Hat Dir dieser Artikel gefallen? Dann würden wir uns sehr über Unterstützung freuen.

Sven Gramatke//www.gravitationart.com/
Schreibt gelegentlich Artikel. Schwerpunkte sind Gamedesign, Programmierung (GML, PHP und JS), Retro und Berichte.

4 Kommentare

Abonnieren
Benachrichtige mich bei
guest
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

NEWS

ByteGame News

Gamedev Podcast 52 – Game Therapy

0
Wer in den letzten 20 Jahren eine deutsche Tagesklinik schon mal von innen gesehen hat, kennt vielleicht Cogpack. Bei Cogpack kann man am PC...
GameJam-Logo von ManaSoup-GameJam (irgendwas mit Pizza)

Manasoup GameJam

0
Die drei-tägige Manasoup GameJam startet am Freitag, den 03.12.2021! Bei dieser deutschsprachigen GameJam der Gamedev-Discord-Community Manasoup-Network (in Kooperation mit Game Dev Podcast und dem Magazin...
ByteGame News

Multiplayer in Godot 4.0

0
Im Godot-Blog gibt es nun einen Beitrag über das neue Multiplayer-Replikationssystem, das für Godot 4.0 entwickelt wird. Darin werden die Konzepte vorgestellt, auf deren...

Echtzeit-Charakteranimationsschulung in der Unreal Engine

0
Animationen sind ein wichtiger Bestandteil jeder Storyline. Neben der Vielzahl von Objekten, die man in der Unreal Engine animieren kann - Charaktere, Objekte, Materialien...
ByteGame News

Rudi ist der beste Spürhund!

0
Bei A Swift's Live 2 - The Journey hat der Hund Rudi eine Schnüffel-Fortbildung genossen und kann nun besser schnüffeln denn je. Als Resultat...
4
0
Would love your thoughts, please comment.x
()
x