Swift bietet einen eingebauten Typ namens Bool, um Wahrheitswerte darzustellen: true und false.
Swift bietet drei logische Operatoren (!, && und ||), um boolesche Ausdrücke zu kombinieren und auszuwerten.
&&)Der und-Operator (&&) gibt nur dann true zurück, wenn beide Operanden true sind.
Ist einer der Operanden false, gibt er false zurück.
Setze einen Ausdruck oder einen booleschen Wert auf jede Seite des &&-Symbols:
true && true // true
true && false // false
||)Der oder-Operator (||) gibt true zurück, wenn mindestens einer der Operanden true ist.
Er gibt nur dann false zurück, wenn beide Operanden false sind.
Setze einen Ausdruck oder einen booleschen Wert auf jede Seite des ||-Symbols:
true || true // true
true || false // true
false || false // false
!)Der nicht-Operator (!) invertiert einen booleschen Wert.
Er gibt true zurück, wenn der Wert false ist, und false, wenn der Wert true ist.
Setze den !-Operator direkt vor den Wert oder Ausdruck:
!true // false
!false // true
())Du kannst runde Klammern verwenden, um Ausdrücke zu gruppieren und die Reihenfolge der Auswertung zu steuern. In Swift werden Ausdrücke in Klammern zuerst ausgewertet:
true && false && false || true // true
true && false && (false || true) // false
Die Gruppierung mit Klammern bestimmt auch, wie der NICHT-Operator auf komplexe Ausdrücke angewendet wird:
!true && false // false (evaluates (!true) first, then false && false)
!(true && false) // true (evaluates (true && false) first to false, then !false)
Verwende Klammern, wenn du die Auswertungsreihenfolge klären oder komplexe Bedingungen lesbarer machen möchtest. Vermeide unnötige Klammern, wenn die Standardrangfolge bereits klar ist.
Du bist gerade dabei, das neue, hoch geschätzte Spiel Wings Quest zu entwickeln. Im Spiel bist du ein Vogel, der umherfliegt und Samen sammelt. Der Spieler gewinnt, indem er alle Samen einsammelt. Wenn der Spieler mit einem Adler in Berührung kommt, verliert er alle seine Samen und damit das Spiel. Es gibt eine Ausnahme von dieser Regel: Der Spieler kann ein aktives Power-up haben, das ihn höher fliegen lässt als andere Vögel.
Dein Ziel ist es, einige Regeln zu schreiben, die im Spiel verwendet werden.
Im Spiel bekommt der Vogel Bonuspunkte, wenn er einen Adler berührt, während er ein Power-up hat.
Definiere die Funktion bonusPoints(powerUpActive:touchingEagle:), die zwei Argumente entgegennimmt: powerUpActive, das angibt, ob der Vogel ein aktives Power-up hat, und das Argument touchingEagle, das angibt, ob der Vogel einen Adler berührt.
Die Funktion sollte nur dann true zurückgeben, wenn der Vogel ein aktives Power-up hat und einen Adler berührt, und ansonsten false.
bonusPoints(powerUpActive: false, touchingEagle: true)
// Returns false
Im Spiel bekommt der Spieler Punkte, wenn er einen Samen oder ein Power-up einsammelt.
Definiere die Funktion score(touchingPowerUp:touchingSeed:), die zwei Argumente entgegennimmt: touchingPowerUp, das angibt, ob der Vogel ein Power-up berührt, und das Argument touchingSeed, das angibt, ob der Vogel einen Samen berührt.
Die Funktion sollte true zurückgeben, wenn der Vogel ein Power-up oder einen Samen berührt, und ansonsten false.
score(touchingPowerUp: true, touchingSeed: true)
// Returns true
Definiere die Funktion lose(powerUpActive:touchingEagle:), die zwei Argumente entgegennimmt: powerUpActive, das angibt, ob der Vogel ein aktives Power-up hat, und das Argument touchingEagle, das angibt, ob der Vogel einen Adler berührt.
Die Funktion sollte true zurückgeben, wenn die Figur einen Adler berührt und kein aktives Power-up hat, und ansonsten false.
lose(powerUpActive: false, touchingEagle: true)
// Returns true
Definiere die Funktion win(hasPickedUpAllSeeds:powerUpActive:touchingEagle:), die folgende Argumente entgegennimmt:
hasPickedUpAllSeeds: ob der Vogel alle Samen eingesammelt hat.powerUpActive: ob der Vogel ein aktives Power-up hat.touchingEagle: ob der Vogel einen Adler berührt.Die Funktion sollte true zurückgeben, wenn der Vogel alle Samen gesammelt hat und gemäß den in Teil 3 definierten Argumenten nicht verloren hat, und ansonsten false.
win(hasPickedUpAllSeeds: false, powerUpActive: true, touchingEagle: false)
// Returns false
Melde dich bei Exercism an, um Swift mit 35 Konzepte116 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.