NEW: Join my free 100 Days of SwiftUI challenge today! >>

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.

SPONSORED Instabug helps you identify and resolve severe crashes quickly. You can retrace in-app events and know exactly which line of code caused the crash along with environment details, network logs, repro steps, and the session profiler. Ask more questions or keep users up-to-date with in-app replies straight from your dashboard. Instabug takes data privacy seriously, so no one sees your data but you! See more detailed features comparison and try Instabug's crash reporting SDK for free.

BUY OUR BOOKS
Buy Pro Swift 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 (Vapor Edition) 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 Server-Side Swift (Kitura Edition) Buy Beyond Code

Was this page useful? Let us know!