Izjava brze sklopke (s primjerima)

U ovom ćete članku naučiti koristiti naredbe kontrole prekidača za kontrolu tijeka izvršavanja vašeg programa.

Izjava prekidača također je raznolikost Swift upravljačke izjave egif-else, guard itd., Koja izvodi različite radnje na temelju različitih uvjeta.

Ljepota izjave switch je u tome što može usporediti vrijednost s nekoliko mogućih obrazaca podudaranja. Stoga se može koristiti kao zamjena za duge if… else… ifljestve dok istovremeno odgovara složenom uzorku.

Sintaksa naredbe switch

Sintaksa naredbe switch je:

 prebaciti varijablu / izraz (vrijednost slučaja1: // izrazi vrijednost slučaja2: // iskazi zadani: // iskazi)

Kako funkcionira Izjava o prebacivanju u Swiftu?

  • Izraz prekidača procjenjuje se jednom.
  • Uzima izraz i uspoređuje se sa svakom vrijednošću slučaja u redoslijedu (Vrh -> Dno).
  • Ako postoji podudaranje, naredba unutar kućišta se izvršava i cjelokupna naredba prekida završava svoje izvršavanje čim je dovršen prvi podudarni slučaj prekidača.
  • Ako za slučaj nema podudarnosti, to se odnosi na sljedeći slučaj.
  • Zadana ključna riječ određuje kôd koji će se pokrenuti ako nema podudaranja velikih i malih slova.

Napomena : Tijelo svakog slučaja mora sadržavati najmanje jedan izvršni izraz.

Primjer 1: Jednostavni program koji koristi Izjavu o prebacivanju

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

Kada pokrenete gornji program, izlaz će biti:

 srijeda

U gornjem programu, naredba switch započinje usklađivanjem vrijednosti dayOfWeek sa slučajem 1 . Budući da se vrijednost dayOfWeek ne podudara s prvom vrijednošću slučaja 1, pada u sljedeći slučaj dok se ne podudara.

Budući da se slučaj 4 podudara s izrazom prekidača, izraz print("Wednesday")unutar slučaja se izvršava i prekidač završava. Ako se nije podudarao nijedan slučaj, izvršava se naredba unutar zadane vrijednosti .

Primjer 2: Izmjena izjave s padom

Ako koristite fallthroughključnu riječ unutar izraza slučaja, kontrola nastavlja na sljedeći slučaj, čak i ako se vrijednost slučaja ne podudara s izrazom prekidača.

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

Kada pokrenete gornji program, izlaz će biti:

 Srijeda četvrtak

U gornjem programu, slučaj 4 izvršava izraz, print("Wednesday")a fallthroughključna riječ prelazi na case5 . Izjava print("Thursday")unutar slučaja 5 izvršava se čak i ako se slučaj ne podudara s izrazom prekidača. Stoga izlaz možete vidjeti u četvrtak na konzoli.

Primjer 3: Izjava o prebacivanju sa složenijim uzorcima

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

Kada pokrenete gornji program, izlaz će biti:

 Programski jezik: Go Verzija: 10 Status: Nije pronađeno

U gornjem programu podudaramo izraz programiranjejezika tipa tuple s različitim slučajevima kao što je dolje prikazano:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Ovaj slučaj veže vrijednost izraza preklopnika na privremene konstante ili varijable za upotrebu u tijelu slučaja s letključnom riječi. To je poznato kao vezivanje vrijednosti.
    Klauzulom također možete primijeniti uvjet na te vrijednosti where. Za višestruke uvjete gdje ih možete povezati pomoću &&operatora kao u gornjem primjeru.
    Ako slučaj ne zadovoljava uvjet definiran unutar klauzule where, izrazi unutar tog bloka slučaja se ne izvršavaju i prolaze za usporedbu sljedećeg preklopnog slučaja.
  • case ("Swift" ,… <4 )
    Ovaj slučaj podudara prvi element nabora s doslovnim nizom, "Swift"a također provjerava nalazi li se drugi element unutar jednostranog raspona … <4.
  • case ("Swift" ,4… )
    Ovaj slučaj podudara prvi element nabora s doslovnim nizom, "Swift"a također provjerava nalazi li se drugi element unutar jednostranog raspona 4… .
  • case (let name, let version)
    Ovaj slučaj veže sve vrijednosti korpica na privremene konstante ili varijable.

Zanimljivi članci...