Vyhlásenie o prepínači Swift (s príkladmi)

V tomto článku sa naučíte používať ovládacie príkazy prepínača na riadenie toku vykonávania vášho programu.

Príkaz switch je tiež rôznymi príkazmi ovládania Swift, napr. Ifif-else, guard atď., Ktoré vykonávajú rôzne akcie na základe rôznych podmienok.

Krása príkazu switch je, že môže porovnávať hodnotu s niekoľkými možnými vzormi zhody. Preto ho možno použiť ako náhradu za dlhé if… else… ifrebríky pri súčasnom zosúladení zložitého vzoru.

Syntax príkazu switch

Syntax príkazu switch je:

 prepnúť premennú / výraz (hodnota prípadu1: // hodnota príkazov hodnota2: // predvolené hodnoty príkazov: // príkazy)

Ako funguje príkaz Switch v aplikácii Swift?

  • Prepínací výraz sa vyhodnotí raz.
  • Zoberie výraz a porovnáva sa s každou hodnotou prípadu v poradí (hore -> dole).
  • Ak existuje zhoda, vykoná sa príkaz vo vnútri prípadu a celý príkaz switch dokončí svoje vykonávanie, akonáhle sa dokončí prvý vyhovujúci prípad prepnutia.
  • Ak pre prípad neexistuje zhoda, pripadá na ďalší prípad.
  • Predvolené kľúčové slovo určuje kód, ktorý sa má spustiť, ak sa nezhoduje veľké a malé písmená.

Poznámka : Telo každého prípadu musí obsahovať najmenej jeden spustiteľný príkaz.

Príklad 1: Jednoduchý program využívajúci príkaz 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") ) 

Keď spustíte vyššie uvedený program, výstup bude:

 Streda

Vo vyššie uvedenom programe sa príkaz switch začína porovnaním hodnoty dayOfWeek s prípadom 1 . Pretože hodnota dayOfWeek sa nezhoduje s hodnotou prvého prípadu 1, spadá do nasledujúceho prípadu, kým sa jeden nezhoduje.

Pretože prípad 4 sa zhoduje s výrazom switch, príkaz print("Wednesday")vo vnútri case sa vykoná a switch case sa ukončí. Ak sa nezhoduje žiadny prípad, vykoná sa vyhlásenie v predvolenom nastavení .

Príklad 2: Prepnutie výpisu s prepadom

Ak použijete fallthroughkľúčové slovo vo vnútri príkazu case, kontrola prejde na ďalší prípad, aj keď sa hodnota prípadu nezhoduje s výrazom 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") ) 

Keď spustíte vyššie uvedený program, výstup bude:

 Streda štvrtok

Vo vyššie uvedenom programe prípad 4 vykoná príkaz print("Wednesday")a fallthroughkľúčové slovo prejde na prípad5 . Príkaz print("Thursday")v prípade 5 sa vykoná, aj keď sa prípad nezhoduje s výrazom switch. Preto môžete v konzole vidieť výstup vo štvrtok .

Príklad 3: Príkaz Switch s zložitejšími vzormi

 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 """) ) 

Keď spustíte vyššie uvedený program, výstup bude:

 Programovací jazyk: Prejsť Verzia: 10 Stav: Nenašiel sa

Vo vyššie uvedenom programe sa zhodujeme s výrazom programovací jazyk Jazyk s tuple s rôznymi prípadmi, ako je uvedené nižšie:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Tento prípad viaže hodnotu výrazu prepínača na dočasné konštanty alebo premenné, ktoré sa dajú použiť v tele prípadu s letkľúčovým slovom. Toto sa nazýva väzba na hodnotu.
    Na tieto hodnoty môžete tiež použiť podmienku s whereklauzulou. V prípade viacerých podmienok ich môžete spojiť pomocou &&operátora ako v príklade vyššie.
    Ak prípad nespĺňa podmienku definovanú vo vnútri klauzule where, príkazy v danom bloku prípadov sa nevykonajú a prepadnú kvôli porovnaniu ďalšieho prípadu zmeny.
  • case ("Swift" ,… <4 )
    Tento prípad zosúladí prvok n-tice s reťazcovým literálom "Swift"a tiež skontroluje, či druhý prvok leží vo vnútri jednostranného rozsahu … <4.
  • case ("Swift" ,4… )
    Tento prípad zosúladí prvok n-tice s reťazcovým literálom "Swift"a tiež skontroluje, či druhý prvok leží vo vnútri jednostranného rozsahu 4… .
  • case (let name, let version)
    Tento prípad spojí všetky hodnoty n-tic s dočasnými konštantami alebo premennými.

Zaujímavé články...