[SWIFT] Lassen Sie uns die switch-Anweisung verstehen!

Dieses Mal habe ich etwas über die switch-Anweisung gelernt und werde sie ausgeben.

Was ist eine switch-Anweisung?

*** Kurz gesagt, die switch-Anweisung ist eine Steuerungssyntax, die ein Muster verwendet, um die Ausführungsanweisung gemäß dem Wert des Steuerausdrucks umzuschalten. *** ***

Die grundlegende Schreibmethode ist wie folgt

qiita.rbvar


Schaltersteuerungstyp{
Fallmuster 1:
Anweisung, die ausgeführt wird, wenn der Steuerausdruck mit Muster 1 übereinstimmt

Fallmuster 2:
Anweisung, die ausgeführt wird, wenn der Steuerausdruck mit Muster 2 übereinstimmt

default:
Anweisung, die ausgeführt wird, wenn der Steuerausdruck keinem Muster entspricht
}

Die switch-Anweisung hat die Eigenschaft, dass nach dem Abgleichen und Ausführen der Ausführungsanweisung der Abgleich endet und die nachfolgenden Muster übersprungen werden. Die if-Anweisung und die guard-Anweisung wurden in zwei Fälle verzweigt, unabhängig davon, ob sie gelten oder nicht, aber die *** switch-Anweisung kann in mehrere Fälle verzweigen. *** ***

Schauen wir uns als nächstes ein einfaches Beispiel an

qiita.rbvar


let a = -2
switch a {

case Int.min..<0:
print("ist ein negativer Wert von a")

case 1..<Int.max:
print("a ist ein positiver Wert")

default:
print("a ist 0")

}

Ausführungsergebnis:a ist ein negativer Wert

wo Schlüsselwort

Mit dem Schlüsselwort where können Sie Bedingungen hinzufügen, die Ihrem Fall entsprechen. Das ist alles, also schauen wir uns gleich die grundlegende Syntax an!

qiita.rbvar


Schaltersteuerungstyp{
Fallmuster-Kontrollausdruck:
Die Steuerformel entspricht Muster 1,Und,Anweisung wird ausgeführt, wenn der bedingte Ausdruck erfüllt ist

default:
Anweisung, die ausgeführt wird, wenn der Steuerausdruck keinem Muster entspricht

Das Folgende ist ein einfaches Beispiel.

qiita.rbvar


let optionalA: Int? = 5

switch optionalA {

case .some(let a)where a > 10:
print("Wert größer als 10\(a)Existiert")
default:
print("Wert existiert nicht,Oder weniger als 10")

Ausführungsergebnis:Wert existiert nicht,Oder weniger als 10

Im obigen Beispiel hat die Konstante optionalA einen Wert, sodass sie mit dem Teil *** case .some (let a) *** übereinstimmt, jedoch nicht die Bedingung erfüllt, bei der a> 10 ist.

break-Anweisung

Die break-Anweisung ist eine Anweisung, die die Ausführung des switch-Anweisungsfalls unterbricht. Schauen wir uns ein einfaches Beispiel an.

qiita.rbvar


let a = 1
switch a{
case 1: 
print("Sie haben sich erfolgreich angemeldet")
break
print("Ich konnte mich nicht anmelden")
default:
break
}
Ausführungsergebnis:Sie haben sich erfolgreich angemeldet

Im obigen Beispiel werden im passenden Fall 1 zwei print () -Funktionen geschrieben: Die break-Anweisung wird jedoch vor der zweiten Druckfunktion geschrieben, also vor dem zweiten Druck Die Funktion wird nicht ausgeführt.

Etikette

Das Label ist ein Mechanismus zum Angeben des Steuerungsziels der break-Anweisung. Es wird in Fällen verwendet, in denen die switch-Anweisung angegeben werden muss, die das Ziel der break-Anweisung ist, z. B. wenn die switch-Anweisung verschachtelt ist.

Verschachtelung: Ein Programmierbegriff, der eine Struktur bedeutet, in der dasselbe in eine bestimmte Sache eingefügt wird. *** ***

Schauen wir uns die Grundstruktur an!

qiita.rbvar


Markenname:switch-Anweisung
Labelname brechen

Schauen wir uns nun ein Beispiel an, in dem ein Etikett benötigt wird.

qiita.rbvar


import UIKit
let value = 0 as Any

outerSwitch: switch value{
case let int as Int:
    let description: String
    switch int {
    case 1,3,5,7,9:
        description = "Seltsam"
   case 2,4,6,8,10:
        description = "Sogar"
  default:
        print("Unzutreffend")//Lies hier
        break outerSwitch
    }
print("Wert ist\(description)ist")

default:
    print("Der Wert ist nicht vom Typ Int")
}

Ausführungsergebnis:Unzutreffend

Wenn im obigen Beispiel der Wert "Beliebiger Typ" ein Int-Typ von 1 bis 10 ist, gibt dieses Programm aus, ob der Wert ungerade oder gerade ist. Da der angegebene Wert 0 ist, wird ausgegeben, dass der Wert außerhalb des Gültigkeitsbereichs liegt.

*** Ändern wir nun die Let-Wert-Spezifikation in "aaa". *** ***

qiita.rbvar


import UIKit
let value = "aaa" as Any

outerSwitch: switch value{
case let int as Int:
    let description: String
    switch int {
    case 1,3,5,7,9:
        description = "Seltsam"
   case 2,4,6,8,10:
        description = "Sogar"
default:
        print("Unzutreffend")
        break outerSwitch
    }
print("Wert ist\(description)ist")

default:
    print("Der Wert ist nicht vom Typ Int")//Lies hier
}

Ausführungsergebnis:Der Wert ist nicht vom Typ Int

Die zweite Druckfunktion wird aufgerufen, da der auf diese Weise angegebene Wert nicht vom Typ Int ist.

Fallthrough-Anweisung

Die Fallthrough-Anweisung ist eine Steuerungssyntax, die die Ausführung eines Falls in einer switch-Anweisung beendet und den nächsten Fall ausführt.

qiita.rbvar


let a = 1
switch a{
case 1: 
print("Sie haben sich erfolgreich angemeldet")
fallthrough
case 2:
print("Ich konnte mich nicht anmelden")
default:
print("default")
}

Ausführungsergebnis:
Sie haben sich erfolgreich angemeldet
Ich konnte mich nicht anmelden

Im obigen Beispiel verschiebt die Fallthrough-Anweisung die Ausführung zum nächsten Fall, case2. Daher werden case1 und case2 ausgegeben.

Recommended Posts

Lassen Sie uns die switch-Anweisung verstehen!
Lassen Sie uns die if-Anweisung verstehen!
Lassen Sie uns die For-In-Anweisung verstehen!
Lassen Sie uns die Funktion verstehen!
switch-Anweisung
Lassen Sie uns den optionalen (verpackten) Typ verstehen!
Lassen Sie uns die Schließung verstehen!
Java-Switch-Anweisung
Bereichsspezifikation für switch-Anweisungen
Studieren der Java-Part 11-switch-Anweisung
Ist die While-Aussage nicht böse?
Lassen Sie uns die App verbessern
12 Entspricht der while-Anweisung
Versuchen wir das S2 Struts Tutorial (# 3_180425)
Verstehen Sie die Hilfsmethode form_with
Probieren wir das S2Struts-Tutorial aus (# 5_180526).
Probieren wir das S2Struts-Tutorial aus (# 4_180505).
Lösen wir das FizzBuzz-Problem!
Probieren wir das S2Struts-Tutorial aus (# 2_180424).
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Verstehen Sie den grundlegenden Mechanismus von log4j2.xml
Wechseln Sie dynamisch die Datenbank, zu der eine Verbindung hergestellt werden soll
[java8] Um die Stream-API zu verstehen
[Java] Verzweigungsaufzählung mit switch-Anweisung
Lassen Sie uns den Bildsuchfilter überprüfen
[Java] Die Geschichte einer wirklich beängstigenden switch-Anweisung
Ich habe eine großartige switch-Anweisung getroffen
Ja, lassen Sie uns eine Vorschau des Bildes anzeigen. ~ part5 ~
Bildverarbeitung: Spielen wir mit dem Bild
Lassen Sie uns die Sicherheitsanfälligkeit angreifen. (2) Öffnen Sie die Umleitung