Instrukcja Swift Switch (z przykładami)

W tym artykule dowiesz się, jak używać instrukcji sterujących przełącznikiem do sterowania przepływem wykonywania programu.

Instrukcja switch jest również odmianą instrukcji sterującej Swift, np. If-else, guard itp., Która wykonuje różne czynności w oparciu o różne warunki.

Piękno instrukcji switch polega na tym, że można porównać wartość z kilkoma możliwymi dopasowanymi wzorcami. Dlatego może być używany jako substytut długich if… else… ifdrabin, dopasowując jednocześnie złożony wzór.

Składnia instrukcji switch

Składnia instrukcji switch jest następująca:

 przełącz zmienną / wyrażenie (case wartość1: // instrukcje case wartość2: // instrukcje default: // instrukcje)

Jak działa instrukcja przełączania w języku Swift?

  • Wyrażenie przełączające jest oceniane raz.
  • Pobiera wyrażenie i porównuje z każdą wartością przypadku w kolejności (Góra -> Dół).
  • Jeśli istnieje dopasowanie, instrukcja wewnątrz przypadku jest wykonywana, a cała instrukcja switch kończy swoje wykonanie, gdy tylko pierwsza zgodna sprawa przełącznika zostanie zakończona.
  • Jeśli nie ma dopasowania dla sprawy, przechodzi do następnej sprawy.
  • Domyślne słowo kluczowe określa kod do uruchomienia, jeśli nie ma dopasowania wielkości liter.

Uwaga : treść każdego przypadku musi zawierać co najmniej jedną instrukcję wykonywalną.

Przykład 1: Prosty program korzystający z instrukcji Switch

 let dayOfWeek = 4 switch dayOfWeek ( case 1: print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

Po uruchomieniu powyższego programu wynik będzie:

 środa

W powyższym programie instrukcja switch zaczyna się od dopasowania wartości dayOfWeek do przypadku 1 . Ponieważ wartość dayOfWeek nie jest zgodna z wartością 1 pierwszego przypadku, przypada do następnego przypadku, dopóki jeden nie pasuje.

Ponieważ przypadek 4 pasuje do wyrażenia przełączającego, instrukcja print("Wednesday")wewnątrz przypadku jest wykonywana, a przypadek przełącznika kończy. Jeśli żaden przypadek nie został dopasowany, wykonywana jest instrukcja wewnątrz default .

Przykład 2: Instrukcja Switch z fallthrough

Jeśli użyjesz fallthroughsłowa kluczowego wewnątrz instrukcji case, formant przejdzie do następnego przypadku, nawet jeśli wartość przypadku nie jest zgodna z wyrażeniem switch.

 let dayOfWeek = 4 switch dayOfWeek ( case 1 : print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") fallthrough case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

Po uruchomieniu powyższego programu wynik będzie:

 środa Czwartek

W powyższym programie przypadek 4 wykonuje instrukcję, print("Wednesday")a fallthroughsłowo kluczowe przechodzi do przypadku5 . Instrukcja print("Thursday")inside case 5 jest wykonywana, nawet jeśli wielkość liter nie pasuje do wyrażenia przełączającego. Dlatego w konsoli można zobaczyć dane wyjściowe czwartek .

Przykład 3: Instrukcja Switch z bardziej złożonymi wzorcami

 let programmingLanguage = (name: "Go", version: 10) switch programmingLanguage ( case (let name,let version) where (version < 0 && name.count < 0) : print("Invalid input") case ("Swift",let version) where version == 4: print("Found latest version of Swift") case ("Swift" ,… <4 ): print("Found older version of swift)") case ("Swift" ,4… ) : print("Swift version greater than 4 is not released yet") case ("Taylor Swift",30) : print("OMG. This is Taylor swift") case (let name, let version): print(""" Programming Language:(name) Version: (version) Status: Not found """) ) 

Po uruchomieniu powyższego programu wynik będzie:

 Język programowania: Go Wersja: 10 Status: Nie znaleziono

W powyższym programie dopasowujemy programowanie wyrażeńJęzyk typu tup z różnymi przypadkami jak poniżej:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Ten przypadek wiąże wartość wyrażenia przełącznika z tymczasowymi stałymi lub zmiennymi do użycia w treści sprawy ze letsłowem kluczowym. Jest to znane jako wiązanie wartości.
    Możesz również zastosować warunek do tych wartości za pomocą whereklauzuli. W przypadku wielu warunków gdzie można je połączyć za pomocą &&operatora, jak w powyższym przykładzie.
    Jeśli przypadek nie spełnia warunku zdefiniowanego w klauzuli where, instrukcje wewnątrz tego bloku case nie są wykonywane i przechodzą do porównania następnego przypadku przełącznika.
  • case ("Swift" ,… <4 )
    Ten przypadek dopasowuje pierwszy element krotki do literału ciągu, "Swift"a także sprawdza, czy drugi element znajduje się w jednostronnym zakresie … <4.
  • case ("Swift" ,4… )
    Ten przypadek dopasowuje pierwszy element krotki do literału ciągu, "Swift"a także sprawdza, czy drugi element znajduje się w jednostronnym zakresie 4… .
  • case (let name, let version)
    Ten przypadek wiąże wszystkie wartości krotek z tymczasowymi stałymi lub zmiennymi.

Interesujące artykuły...