Изјава о брзом прекидачу (са примерима)

У овом чланку ћете научити да користите наредбе за контролу прекидача за контролу тока извршавања вашег програма.

Изјава о пребацивању такође је разноликост Свифт управљачке изјаве егиф-елсе, гуард итд., Која изводи различите радње на основу различитих услова.

Лепота изјаве прекидача је у томе што може упоредити вредност са неколико могућих образаца подударања. Због тога се може користити као замена за дуге if… else… ifлестве док истовремено одговара сложеном узорку.

Синтакса наредбе свитцх

Синтакса наредбе свитцх је:

 пребаци променљиву / израз (вредност случаја1: // изрази вредност случаја2: // изрази подразумевано: // искази)

Како функционише Изјава о пребацивању у Свифту?

  • Израз прекидача процењује се једном.
  • Узима израз и упоређује са вредностима сваког случаја у редоследу (Врх -> Дно).
  • Ако постоји подударање, наредба унутар кућишта се извршава и цела наредба прекида завршава своје извршавање чим је завршен први одговарајући случај прекидача.
  • Ако за случај нема подударности, то се односи на следећи случај.
  • Подразумевана кључна реч наводи код који треба покренути ако нема подударања великих и малих слова.

Напомена : Тело сваког случаја мора да садржи најмање једну извршну наредбу.

Пример 1: Једноставан програм који користи Изјаву прекидача

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

Када покренете горњи програм, излаз ће бити:

 Среда

У горњем програму, наредба свитцх започиње упаривањем вредности даиОфВеек са случајем 1 . Пошто се вредност даиОфВеек не подудара са првом вредношћу случаја 1, пада на следећи случај док се један не подудара.

Будући да се случај 4 подудара с изразом свитцх, наредба print("Wednesday")унутар случаја се извршава и цасе цасе завршава. Ако се не подудара ниједан случај, извршава се наредба унутар дефаулт-а .

Пример 2: Измените изјаву са пробијањем

Ако користите fallthroughкључну реч унутар наредбе случаја, контрола прелази на следећи случај, чак и ако се вредност случаја не подудара са изразом прекидача.

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

Када покренете горњи програм, излаз ће бити:

 среда Четвртак

У горњем програму, случај 4 извршава израз, print("Wednesday")а fallthroughкључна реч прелази на случај 5 . Изјава print("Thursday")унутар случаја 5 извршава се чак и ако се случај не подудара са изразом прекидача. Према томе, излаз можете видети у четвртак у конзоли.

Пример 3: Измена замене са сложенијим обрасцима

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

Када покренете горњи програм, излаз ће бити:

 Програмски језик: Го Верзија: 10 Статус: Није пронађено

У горњем програму подударамо израз програмирањејезика типа тупле са различитим случајевима као што је приказано доле:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Овај случај веже вредност израза прекидача за привремене константе или променљиве за употребу у телу случаја са letкључном речи. Ово је познато као везивање вредности.
    Такође можете применити услов на те вредности са whereклаузулом. За вишеструке услове, можете их повезати помоћу &&оператора као у горњем примеру.
    Ако случај не задовољава услов дефинисан унутар клаузуле вхере, изрази унутар тог блока случаја се не извршавају и пролазе да би се упоредио следећи случај прекидача.
  • case ("Swift" ,… <4 )
    Овај случај подудара први елемент набора са литералом низа "Swift"и такође проверава да ли се други елемент налази унутар једностраног опсега … <4.
  • case ("Swift" ,4… )
    Овај случај подудара први елемент набора са литералом низа "Swift"и такође проверава да ли се други елемент налази унутар једностраног опсега 4… .
  • case (let name, let version)
    Овај случај везује све вредности корпица за привремене константе или променљиве.

Занимљиви Чланци...