Pikakytkimen lausunto (esimerkkien kanssa)

Tässä artikkelissa opit käyttämään kytkimen ohjauslausekkeita ohjaamaan ohjelman suorituksen kulkua.

Kytkinlauseke on myös erilaisia ​​Swift-ohjauslausekkeita egif-else, guard jne., Joka suorittaa erilaisia ​​toimintoja eri olosuhteiden perusteella.

Kytkinlausunnon kauneus on, että se voi verrata arvoa useisiin mahdollisiin vastaavuuksiin. Siksi sitä voidaan käyttää pitkien if… else… iftikkaiden korvikkeena samalla kun ne sopivat monimutkaiseen kuvioon.

Kytkinlausekkeen syntakse

Kytkinlausekkeen syntaksi on:

 vaihtaa muuttujaa / lauseketta (tapausarvo1: // lauseet tapausarvo2: // lauseet oletus: // lauseet)

Kuinka Swift-lauseenvaihto toimii?

  • Kytkimen ilmaisu arvioidaan kerran.
  • Se ottaa lausekkeen ja vertaa sitä kunkin järjestysarvon kanssa (Yläosa -> Alareuna).
  • Jos vastaavuus on olemassa, tapauksen sisällä oleva käsky suoritetaan ja koko kytkinlauseke suorittaa suorituksen heti, kun ensimmäinen vastaava kytkentätapa on valmis.
  • Jos tapausta ei löydy, se kuuluu seuraavaan tapaukseen.
  • Oletusavainsana määrittää koodin, joka suoritetaan, jos kirjainkokoa ei löydy.

Huomaa : Jokaisen tapauksen rungossa on oltava vähintään yksi suoritettava käsky.

Esimerkki 1: Yksinkertainen ohjelma, joka käyttää Switch Statementia

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

Kun suoritat yllä olevan ohjelman, tulos on:

 keskiviikko

Yllä olevassa ohjelmassa kytkinlauseke alkaa sovittamalla dayOfWeek-arvo tapaukseen 1 . Koska dayOfWeek-arvo ei vastaa ensimmäisen tapauksen arvoa 1, se laskee seuraavaan tapaukseen, kunnes yksi vastaa.

Koska tapaus 4 vastaa kytkinlauseketta, print("Wednesday")tapauksen sisällä oleva käsky suoritetaan ja kytkentätapa päättyy. Jos yhtään tapausta ei löytynyt, oletusarvoinen lause suoritetaan.

Esimerkki 2: Vaihda lauseen läpimurtoa

Jos käytät fallthroughavainsanaa tapauslausekkeen sisällä, ohjaus etenee seuraavaan tapaukseen, vaikka tapausarvo ei olisikaan kytkinlausekkeen kanssa.

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

Kun suoritat yllä olevan ohjelman, tulos on:

 keskiviikko torstai

Edellä olevassa ohjelmassa tapaus 4 suorittaa lausunnon print("Wednesday")ja fallthroughavainsana etenee tapaukseen 5 . Tapaus 5: nprint("Thursday") sisäinen lause suoritetaan, vaikka tapaus ei täsmää kytkinlausekkeen kanssa. Siksi näet lähdön torstaina konsolissa.

Esimerkki 3: Vaihda lauseen monimutkaisemmilla kuvioilla

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

Kun suoritat yllä olevan ohjelman, tulos on:

 Ohjelmointikieli: Go Versio: 10 Tila: Ei löydy

Yllä olevassa ohjelmassa sovitamme lausekkeen ohjelmointikielen kielen eri tapauksiin seuraavasti:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Tämä tapaus sitoo kytkimen lausekkeen arvon väliaikaisiin vakioihin tai muuttujiin, joita käytetään kotelon rungossa letavainsanalla. Tätä kutsutaan arvon sitomiseksi.
    Voit myös käyttää ehtoa näihin arvoihin wherelausekkeella. Useissa olosuhteissa voit liittää ne &&operaattorilla kuten yllä olevassa esimerkissä.
    Jos tapaus ei täytä lausekkeen sisällä määriteltyä ehtoa, kyseisen tapauslohkon sisällä olevat lauseet eivät toteudu ja kaatuvat vertaamaan seuraavaa kytkentätapausta.
  • case ("Swift" ,… <4 )
    Tämä tapaus sovittaa ensimmäisen elementin ja merkkijonon literaalin "Swift"ja tarkistaa myös, onko toinen elementti yksipuolisen alueen sisällä … <4.
  • case ("Swift" ,4… )
    Tämä tapaus sovittaa ensimmäisen elementin ja merkkijonon literaalin "Swift"ja tarkistaa myös, onko toinen elementti yksipuolisen alueen sisällä 4… .
  • case (let name, let version)
    Tämä tapaus sitoo kaikki joukon arvot väliaikaisiin vakioihin tai muuttujiin.

Mielenkiintoisia artikkeleita...