Greitas jungiklio teiginys (su pavyzdžiais)

Šiame straipsnyje išmoksite naudoti jungiklio valdymo sakinius, kad valdytumėte programos vykdymo eigą.

„Switch“ sakinys taip pat yra įvairūs „Swift“ valdymo sakiniai egif-else, guard ir kt., Atliekantys skirtingus veiksmus, atsižvelgiant į skirtingas sąlygas.

Jungiklio teiginio grožis yra tas, kad jis gali palyginti vertę su keliais galimais derinimo modeliais. Todėl jis gali būti naudojamas kaip ilgų if… else… ifkopėčių pakaitalas, derinant sudėtingą modelį.

Jungiklio sakinio sintaksė

Jungiklio sakinio sintaksė yra tokia:

 perjungti kintamąjį / išraišką (atvejo reikšmė1: // sakiniai atvejo reikšmė2: // numatytieji teiginiai: // sakiniai)

Kaip veikia „Swift“ teiginys programoje „Swift“?

  • Jungiklio išraiška įvertinama vieną kartą.
  • Ji paima išraišką ir palygina su kiekvienos eilės reikšme (Viršuje -> Apačioje).
  • Jei yra atitikimas, byloje esantis sakinys įvykdomas ir visas jungiklio sakinys baigiamas vykdyti, kai tik baigiamas pirmasis suderinimo jungiklio atvejis.
  • Jei atvejis nesutampa, jis patenka į kitą atvejį.
  • Numatytasis raktinis žodis nurodo kodą, kurį reikia paleisti, jei nėra didžiųjų raidžių atitikties.

Pastaba : kiekvieno atvejo turinyje turi būti bent vienas vykdomasis sakinys.

1 pavyzdys: paprasta programa naudojant „Switch Statement“

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

Kai paleisite pirmiau nurodytą programą, išvestis bus:

 Trečiadienis

Pirmiau pateiktoje programoje jungiklio sakinys prasideda suderinus dayOfWeek reikšmę su 1 atveju . Kadangi „dayOfWeek“ vertė neatitinka pirmojo atvejo 1 vertės, ji patenka į kitą atvejį, kol sutampa vienas.

Kadangi 4 atvejis atitinka jungiklio išraišką, print("Wednesday")byloje esantis sakinys vykdomas ir jungiklio atvejis baigiamas. Jei nė vienas atvejis nesutapo, vykdomas numatytoji nuostata .

2 pavyzdys: perjunkite teiginį su proveržiu

Jei naudojate fallthroughraktinį žodį bylos apraše, valdiklis pereina prie kito atvejo, net jei bylos reikšmė nesutampa su jungiklio išraiška.

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

Kai paleisite pirmiau nurodytą programą, išvestis bus:

 Trečiadienis, Ketvirtadienis

Pirmiau pateiktoje programoje 4 atvejis įvykdo teiginį, print("Wednesday")o fallthroughraktinis žodis tęsiasi prie case5 . 5 atvejoprint("Thursday") viduje esantis sakinys vykdomas, net jei atvejis neatitinka jungiklio išraiškos. Todėl konsolėje galite pamatyti išvestį ketvirtadienį .

3 pavyzdys: perjunkite teiginį su sudėtingesniais modeliais

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

Kai paleisite pirmiau nurodytą programą, išvestis bus:

 Programavimo kalba: Go Versija: 10 Statusas: Nerasta

Pirmiau pateiktoje programoje deriname išraiškos programavimą „Tuple“ tipo kalba su skirtingais atvejais, kaip nurodyta toliau:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Šiuo atveju jungiklio išraiškos vertė susiejama su laikinomis konstantomis ar kintamaisiais, naudojamais bylos pagrindiniame lettekste su raktiniu žodžiu. Tai vadinama vertės įpareigojimu.
    Šioms reikšmėms taip pat galite taikyti sąlygą su wheresąlyga. Jei yra kelios sąlygos, galite jas susieti naudodami &&operatorių, kaip parodyta aukščiau.
    Jei atvejis netenkina sąlygos, apibrėžtos ten, kur sąlygoje, sakiniai tame atvejo bloke nevykdomi ir iškrenta, kad palygintų kitą jungiklio atvejį.
  • case ("Swift" ,… <4 )
    Šis atvejis sutampa su pirmojo paketo elementu su eilutės pažodžiui "Swift"ir patikrina, ar antrasis elementas yra vienpusio diapazono viduje … <4.
  • case ("Swift" ,4… )
    Šis atvejis sutampa su pirmojo paketo elementu su eilutės pažodžiui "Swift"ir patikrina, ar antrasis elementas yra vienpusio diapazono viduje 4… .
  • case (let name, let version)
    Šis atvejis susieja visas rinkinių reikšmes su laikinosiomis konstantomis ar kintamaisiais.

Įdomios straipsniai...