TEAM LICENSES: Save money and learn new skills through a Hacking with Swift+ team license >>

Bedingte Ausführung

Manchmal möchte man Code nur dann ausführen, wenn eine bestimmte Bedingung erfüllt ist und in Swift ist dies vorwiegend durch if- und else-Statements repräsentiert. Man übergibt Swift eine Bedingung, die überprüft werden soll, dann einen Code-Block, der ausgeführt wird, wenn diese Bedingung erfüllt ist.

Optional kann man auch else schreiben und einen Code-Block übergeben, der ausgeführt wird, falls die Bedingung nicht erfüllt wird, oder sogar else if und noch mehr Bedinungen abdecken. Ein Code-"Block" ist dabei ein Stück Code, welcher mit einer offenen, geschweiften Klammer - { - am Anfang und einer geschlossenen, geschweiften Klammer - } - am Ende markiert ist.

Hier ein einfaches Beispiel:

var action: String
var person = "hater"

if person == "hater" {
    action = "hate"
}

Dies benutzt den == (Gleichheits-)Operator, den wir schon kennen, um zu schauen, ob der String in person exakt mit dem String "hater" übereinstimmt. Wenn dem so ist, setzt dies die action-Variable auf "hate". Bitte beachte die offenen und geschlossenen Klammern - gerne auch mal weniger technisch als "curly brackets" bezeichnet - welche den Anfang und das Ende des Codes markieren, welcher ausgeführt wird, wenn die Bedingung wahr ist.

Lass uns else if- und else-Blöcke hinzufügen:

var action: String
var person = "hater"

if person == "hater" {
    action = "hate"
} else if person == "player" {
    action = "play"
} else {
    action = "cruise"
}

Dies wird jede Bedingung nacheinander überprüfen und nur einer der Blöcke wird ausgeführt: Eine Person ist entweder ein Hater, ein Player oder irgendwas anderes.

Mehrere Bedingungen überprüfen

Du kannst Swift jede Anzahl an Bedingungen prüfen lassen, die Du möchtest, aber alle müssen wahr sein, damit Swift den Code-Block ausführt. Um mehrere Bedingungen zu prüfen, benutze den &&-Operator - er bedeutet "und". Als Beispiel:

var action: String
var stayOutTooLate = true
var nothingInBrain = true

if stayOutTooLate && nothingInBrain {
    action = "cruise"
}

Weil stayOutTooLate und nothingInBrain beide wahr sind, ist die ganze Bedingung war und action wird auf "cruise" gesetzt. Swift benutzt etwas, das man "short-circuit evaluation" nennt, um die Performance zu erhöhen: Wenn es mehrere Dinge überprüft, die wahr sein sollen und das erste davon ist falsch, wird es den Rest nicht mehr auswerten.

Die Suche nach dem Gegenteil der Wahrheit

Dies mag jetzt sehr philosophisch klingen, aber ist sehr wichtig: Manchmal ist es wichtig, zu schauen, ob eine Bedinung nicht wahr ist, also falsch. Du kannst dies mit dem ! (Nicht-)Operator erreichen, welcher schon an einer frühen Stelle vorgestellt wurde. Als Beispiel:

if !stayOutTooLate && !nothingInBrain {
    action = "cruise"
}

Dieses mal wird die action-Variable nur gesetzt, wenn stayOutTooLate und nothingInBrain beide falsch sind - das ! hat die beiden Werte umgedreht.

Hacking with Swift is sponsored by Blaze.

SPONSORED Still waiting on your CI build? Speed it up ~3x with Blaze - change one line, pay less, keep your existing GitHub workflows. First 25 HWS readers to use code HACKING at checkout get 50% off the first year. Try it now for free!

Reserve your spot now

Sponsor Hacking with Swift and reach the world's largest Swift community!

BUY OUR BOOKS
Buy Pro Swift Buy Pro SwiftUI Buy Swift Design Patterns Buy Testing Swift Buy Hacking with iOS Buy Swift Coding Challenges Buy Swift on Sundays Volume One Buy Server-Side Swift Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Advanced iOS Volume Three Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with macOS Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Beyond Code

Was this page useful? Let us know!

Average rating: 5.0/5

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.