Prohlášení o přepínači Swift (s příklady)

V tomto článku se naučíte používat příkazy ovládání přepínače k ​​řízení toku provádění vašeho programu.

Příkaz switch je také řada příkazů ovládání Swift egif-else, guard atd., Které provádějí různé akce na základě různých podmínek.

Krása příkazu switch je, že může porovnávat hodnotu s několika možnými shodnými vzory. Lze jej proto použít jako náhradu za dlouhé if… else… ifžebříky při sladění složitého vzoru.

Syntaxe příkazu switch

Syntaxe příkazu switch je:

 přepnout proměnnou / výraz (hodnota případu1: // příkazy hodnota případu2: // výchozí příkazy: // příkazy)

Jak funguje příkaz Switch ve Swiftu?

  • Přepínací výraz je vyhodnocen jednou.
  • Převezme výraz a porovná se s každou hodnotou případu v pořadí (Horní -> Dolní).
  • Pokud existuje shoda, provede se příkaz uvnitř případu a celý příkaz přepínače dokončí své provádění, jakmile je dokončen první odpovídající případ přepnutí.
  • Pokud pro případ neexistuje shoda, spadá to do dalšího případu.
  • Výchozí klíčové slovo určuje kód, který se má spustit, pokud neexistuje shoda případu.

Poznámka : Tělo každého případu musí obsahovat alespoň jeden spustitelný příkaz.

Příklad 1: Jednoduchý program využívající pří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") ) 

Když spustíte výše uvedený program, výstup bude:

 středa

Ve výše uvedeném programu příkaz switch začíná porovnáním hodnoty dayOfWeek s případem 1 . Protože hodnota dayOfWeek neodpovídá hodnotě prvního případu 1, spadne do dalšího případu, dokud se jeden neshoduje.

Vzhledem k tomu, že se případ 4 shoduje s výrazem switch, provede se příkaz print("Wednesday")uvnitř případu a případ switch se ukončí. Pokud nebyl přiřazen žádný případ, provede se příkaz ve výchozím nastavení .

Příklad 2: Přepnutí příkazu s propadem

Pokud použijete fallthroughklíčové slovo uvnitř příkazu case, ovládací prvek přejde na další případ, i když hodnota případu neodpovídá výrazu 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") ) 

Když spustíte výše uvedený program, výstup bude:

 Středa čtvrtek

Ve výše uvedeném programu případ 4 provede příkaz print("Wednesday")a fallthroughklíčové slovo bude pokračovat případu5 . Příkaz print("Thursday")uvnitř případu 5 se provede, i když se případ neshoduje s výrazem přepínače. Proto můžete v konzole vidět výstup ve čtvrtek .

Příklad 3: Přepínací příkaz se složitějšími vzory

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

Když spustíte výše uvedený program, výstup bude:

 Programovací jazyk: Go Verze: 10 Stav: Nenalezeno

Ve výše uvedeném programu odpovídáme výrazu programovací jazyk jazyka tuple s různými případy, jak je uvedeno níže:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Tento případ váže hodnotu výrazu přepínače na dočasné konstanty nebo proměnné pro použití v těle případu s letklíčovým slovem. Toto se nazývá vazba hodnot.
    Na tyto hodnoty můžete také použít podmínku pomocí whereklauzule. Pro více podmínek, kde je můžete zřetězit pomocí &&operátoru jako v příkladu výše.
    Pokud případ nesplňuje podmínku definovanou uvnitř klauzule where, příkazy uvnitř bloku případů se neprovedou a propadnou k porovnání dalšího případu přepnutí.
  • case ("Swift" ,… <4 )
    Tento případ odpovídá prvku n-tice s řetězcovým literálem "Swift"a také zkontroluje, zda druhý prvek leží uvnitř jednostranného rozsahu … <4.
  • case ("Swift" ,4… )
    Tento případ odpovídá prvku n-tice s řetězcovým literálem "Swift"a také zkontroluje, zda druhý prvek leží uvnitř jednostranného rozsahu 4… .
  • case (let name, let version)
    Tento případ váže všechny hodnoty n-tic na dočasné konstanty nebo proměnné.

Zajímavé články...