Swift Switch Bildirimi (Örneklerle)

Bu makalede, programınızın yürütme akışını kontrol etmek için anahtar kontrol ifadelerini kullanmayı öğreneceksiniz.

Switch ifadesi ayrıca farklı koşullara göre farklı eylemler gerçekleştiren çeşitli Swift kontrol ifadesidir egif-else, guard vb.

Switch deyiminin güzelliği, bir değeri birkaç olası eşleme modeliyle karşılaştırabilmesidir. Bu nedenle, if… else… ifkarmaşık desen eşleştirilirken uzun merdivenlerin yerine kullanılabilir .

Switch deyiminin sözdizimi

Switch deyiminin sözdizimi şöyledir:

 değişkeni / ifadeyi değiştir (case value1: // deyimler case value2: // deyimler varsayılan: // deyimler)

Swift'deki Switch Beyanı nasıl çalışır?

  • Switch ifadesi bir kez değerlendirilir.
  • İfadeyi alır ve sıradaki her durum değeri ile karşılaştırır (Üst -> Alt).
  • Bir eşleşme varsa, vaka içindeki ifade yürütülür ve ilk eşleşen anahtar durumu tamamlanır tamamlanmaz tüm switch deyimi yürütmeyi bitirir.
  • Dava için eşleşme yoksa, bir sonraki davaya düşer.
  • Varsayılan anahtar kelime, büyük / küçük harf eşleşmesi yoksa çalıştırılacak kodu belirtir.

Not : Her vakanın gövdesi en az bir çalıştırılabilir ifade içermelidir.

Örnek 1: Switch Statement kullanan basit program

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

Yukarıdaki programı çalıştırdığınızda, çıktı:

 Çarşamba

Yukarıdaki programda switch deyimi dayOfWeek değerini case 1 ile eşleştirerek başlar . DayOfWeek değeri ilk durum değeri 1 ile eşleşmediğinden, biri eşleşene kadar sonraki duruma düşer.

Yana vaka 4 şalter ifadesini, deyimi eşleşen print("Wednesday")vaka yürütür ve anahtar vaka sona erdiği içeride. Hiçbir durum eşleşmemişse, varsayılan içindeki ifade yürütülür.

Örnek 2: Fallthrough ile Switch İfadesi

fallthroughAnahtar sözcüğü case deyiminin içinde kullanırsanız, case değeri switch ifadesiyle eşleşmese bile denetim sonraki duruma geçer.

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

Yukarıdaki programı çalıştırdığınızda, çıktı:

 Çarşamba Perşembe

Yukarıdaki programda, durum 4 ifadeyi yürütür print("Wednesday")ve fallthroughanahtar kelime case5'e ilerler . Durum 5print("Thursday") içindeki ifade , durum switch ifadesiyle eşleşmese bile yürütülür. Bu nedenle, perşembe çıkışını konsolda görebilirsiniz.

Örnek 3: Daha karmaşık desenlere sahip Switch İfadesi

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

Yukarıdaki programı çalıştırdığınızda, çıktı:

 Programlama Dili: Go Versiyon: 10 Durum: Bulunamadı

Yukarıdaki programda, tuple türü ifade programlama dilini aşağıdaki gibi farklı durumlarla eşleştiriyoruz:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Bu durum, letanahtar kelime ile durum gövdesinde kullanılmak üzere anahtar ifadesi değerini geçici sabitlere veya değişkenlere bağlar . Bu, değer bağlama olarak bilinir.
    Ayrıca bu değerlere cümleli koşul uygulayabilirsiniz where. Birden fazla nerede koşulu için, &&yukarıdaki örnekte olduğu gibi operatörü kullanarak bunları birleştirebilirsiniz .
    Durum, where cümlesi içinde tanımlanan koşulu karşılamıyorsa, bu durum bloğunun içindeki ifadeler çalışmaz ve sonraki anahtar durumu karşılaştırmak için düşer.
  • case ("Swift" ,… <4 )
    Bu durum, tuple birinci elemanını değişmez dize ile eşleştirir "Swift"ve ayrıca ikinci elemanın tek taraflı aralıkta olup olmadığını kontrol eder … <4.
  • case ("Swift" ,4… )
    Bu durum, tuple birinci elemanını değişmez dize ile eşleştirir "Swift"ve ayrıca ikinci elemanın tek taraflı aralıkta olup olmadığını kontrol eder 4… .
  • case (let name, let version)
    Bu durum, demetlerin her değerini geçici sabitlere veya değişkenlere bağlar.

Ilginç makaleler...