izmir escort

Swift Switch Case ve Range

Merhaba arkadaşlar ,
mobilhanem.com sitemiz için anlattığımız/yayınladığımız Swift Dersleri serimize bu yazımızda Swift Switch Case ve Range ile devam edeceğiz. Bir önceki yazımızda Swift if ve Guard konusundan bahsetmiştik. Bu derse başlamadan önce xcode’u kurmak ve playground  üzerinde swift kodu yazabilmek için bu dersimizi okumanızı tavsiye ederim.

Başlamadan önce geçen haftaki yaptığımız bir örnekte mantıksal olarak bir hatanın varlığından bahsetmiştik.Bahsedilen mantıksal hata ise diplomaNotu ‘nun 0’dan düşük olduğu durumlarda bile “Mezun olmak için çok çalışman lazım” yazısı ekrana bastırılıyordu. Oysa diplomaNotu negatif bir değer alamaz bunu çözmek için , başka bir if bloğu oluşturarak diplomaNotu ‘nun 0’dan küçük değilse diye kontrol ederek bu bloğunun içerisine önceden yazdığımız if bloğunu alabiliriz tabiki bu yöntemin dışında bir sürü başka yöntem ilede bu mantıksal hatayı giderebiliriz 🙂

Java Kotlin Eğitimi

Swift Switch Nedir ?

Swift Switch yapıları bir değişkenin değerini alıp , bizim tarafımızdan belirlenen durumlar ile kıyaslar ve ilk eşleşen durumun sahip olduğu kod bloğunu çalıştırır. Switch yapıları if yapılarına çok benzerdir. if ile yaptığımız işlemleri switch ile rahatlıkla yapabiliriz. Switch yapılarında case yani durumlar bulunur. Switch keyword ‘ünün yanında ele alacağımız değişkenimizi yazıp ardından ele alacağımız durumları case keyword ‘ü ile durumlarımızı yazarız. Daha fazla uzatmadan hemen örnekle açıklayalım.

Yukarıdaki kod bloğunda kacinciGun isimli integer türünde değişkenimizi tanımladık ve değer olarak 1 atadık. Switch keyword ‘ümüzün yanında ele alacağımız değişkenimizi yani kacinciGun ‘ü yazdık böylelikle derleyicimize kacinciGun ‘ün alabileceği değerleri inceliyeceğiz dedik ve ardından  case yani durumlarımızda kacinciGun değişkenin alabileceği değerlerimizi girdik (1,2,3,4,5,6,7 ). Ve böylece kacinciGun ‘ün değeri case ‘lerimizden hangisiyle ilk olarak eşleştiyse o durumun altındaki işlemi yapar. Yani aynı case ‘i yazmamıza gerek yoktur çünkü ilk olarak hangisiyle eşleşirse o case ‘in bloğunda olan kodlarımızı çalıştırır.

Nedir Peki Bu Default ?

Print komutundan da anlayabileceğiniz gibi değişkenimizin değerleri case ‘lerimizden hiç biriyle eşleşmez ise bu default durumunun altındaki kod bloğu çalıştırılır. Ve swift bize bu default kısmını yazmamızı zorunlu kılmıştır. Her ihtimali göz önünde bulundursak bile default bloğunu yazmamız gerekmektedir ve bunun yanında default ‘un altında çalıştırılabilir bir komut yazmak durumundayız en basitinden bir print komutu ekleyebiliriz.

Swift Switch vs if

Yukarıda switch kullanarak yaptığımız işlemi if ile yapıp farkını görelim şimdide

Yukarıda if kullanarak yaptığımız işlem switch ile yaptığımız işlemin aynısıdır . Nerede if nerede switch kullanılacağı sizin kontrolünüzdedir merak etmeyin zaman içinde bunu kolaylıkla yaptığınızı göreceksiniz 🙂

Swift Range

Range ‘in türkçe karşılığı aralıktır. Swift’te Range kullanmanın farklı yolları vardır .

1.Closed Range Operator

Gösterimi – sayı (üç nokta) sayı – şeklindedir -> 3…7 . Burada range ‘imiz 3 ile başlar 4,5,6 ile devam eder ve 7 ile son bulur. Yani 3 ve 7 bu aralığa dahildir.

2.Half-Open Range Operator

Gösterimi – sayı (iki nokta) < sayı – şeklindedir -> 3..<7 . Burada range ‘imiz 3 ile başlar 4,5 ile devam eder ve 6 ile son bulur. Yan, 3 bu aralığa dahilken 7 dahil değildir.

Küçük bir not , 3. bir yöntem olarak One-Sided Ranges vardır fakat bu yöntem diziler anlatıldıktan sonra anlatılacaktır.

Evet yukarıda öncelikle yurumeMesafesi isimli değişkenimizi oluşturduk ve 1500 değerini atadık ardından derleyicimize yurumeMesafesi değişkenimizin değerini inceleyeceğimizi söyledik. Ve sonra case ‘lerimizi yani olabilecek durumlarımızı söyledik önceki yaptıklarımızdan tek farkı bu örneğimizde aralık verdik . Bu işlemide iki değerin arasına (üç tane nokta) koyarak yaptık. Derleyicimiz yurumeMesafesi değişkeninin değerinin ilk duruma yani  case 0…300 ‘e uyup uymadığına bakar.Bu uygunluk işlemide  1500 ‘ün 0 ile 300 arasında olup olmaması ile ilgilidir. Eğer 1500 , 0 ile 300 arasında olsaydı bu duruma uyacaktı ve bu bloğa girip konsola “Yürümeye üşenmeyin” yazacaktı fakat bu aralığa girmediği için bir sonraki duruma (case 301…800) bakacak ve bu işlemi uymadığı taktirde sürekli tekrar edecektir . Bu işlem bütün koşullara uyup uymadığına bakana kadar devam edecektir eğer bütün koşullar denenmiş ve uygun aralık bulunamamışsa öncedende söylediğim gibi default bloğundaki kodu çalıştıracaktır. Peki yurumeMesafesi ‘nin değeri 2000 olsaydı hangi case ‘e uygun olacaktı ? Yorumlarınızı bekliyorum 🙂

Switch Case Birden Çok Durum

Elinizde farklı durumlar var fakat bu durumların bazılarında aynı işlemi mi yapıcaksınız ? Birazdan anlatıcağım sistemde tam sizin ihtiyacınızı gidericek bir yöntem. Switch case yapısında farklı koşullar altında farklı bir case yazmadan aynı işlemi rahatlıkla yaptırabilirsiniz ,

Yukarıda anlattığım işlemlerden farklı olarak burada tek bir case değilde birden çok case yazarak ele almamız. Ve bu işlemide normal olarak yazdığımız case ‘in sonuna , (virgül) koyup altına ve ya yanına (Hangisi gözünüze hoş gelirse) diğer case ‘imizi yazarak yapabiliriz . Dikkat edilmesi gereken hususlardan biriside case keyword ‘ümüzü tekrar tekrar yazmıyoruz onun yerine virgül kullanarak gerçekleştiriyoruz. Peki yukarıdaki kod ne yapıyor ?

isim adında bir değişken tanımladık ve bu değişkenimiz string türünde değeride “rüya” . ilk case ‘imiz isim ‘in değerinin “rüya” olması ve “RÜYA” olması . Eğer bu iki case ‘den birine uyuyor ise isim değişkenimizin değerini “Rüya” olarak düzeltiyoruz ve ekrana “İsim 1.case’te düzeltildi. Düzelmiş hali = \(isim)” yazısını bastırıyoruz. Kısacası girilmiş olan hatalı ismi bulup düzeltiyor ve hangi case ile eşleştiğini (hangi case’e uyduğunu) ekrana yazdırıyoruz .

Switch Case Where Kullanımı

Where keyword ‘ünü kullanarak case ‘lerimize ek olarak bir matematiksel bir koşul koyuyormuşuz gibi düşünebiliriz. Hem case ‘imiz sağlması hemde where keyword ‘ünden sonra yazdığımız koşul sağlanması gerekmektedir aksi taktirde o an denediği case ‘in altında yazan komutu çalıştırmaz ve bir sonraki case ‘e geçerek aynı işlemleri tekrarlar.

Yukarıda havaSicakligi değişkenimizi yarattık ve -34 değerini atadık. İlk case ‘imizi inceleyelim , ilk olarak -50 … -20 ile yaptığımız işlem , havaSicakligi -50 ile -20 arasında olup olmadığını kontrol eder ve bu durum sağlanıyor ise where havaSicakligi % 2 == 0 işlemini yapar. Burada havaSicakligi ‘nın yüzde 2 sini alarak 0 ‘a eşit mi diye kontrol eder ve bu koşulda sağlanıyor ise altındaki print(“Hava çok soğuk! Derece Çift sayı”) komutunu çalıştırır ve switch yapısından çıkar eğer bunlardan biri bile sağlanmıyor ise bir sonraki case ‘e geçer ve bu işlemi devam ettirir.

 

Yapmış olduğumuz örneklerin tümünü burada bulabilirsiniz.

 

Konuyla ilgili yorumlarınızı konu altından yapabilir, sorularınızı sorucevap.mobilhanem.com adresinden ve konu altından sorabilirsiniz.

Swift Eğitimleri serimizdeki tüm derslerin listesine buradan ulaşabilirsiniz.

Kaynak: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309

Taha Eren Buyruk

Başkent Üniversitesi Bilgisayar Mühendisliği.

2 Yorum

    • İlk olarak havaSicakligi değişkeninin değerinin -50 … -20 arasında olup olmadığına bakmaktadır. Eğer sağlanmıyor ise where keywordünün sağlanıp sağlanmadığına bakmaz. Bu iki koşul ifadesi AND ile bağlanmıştır bu yüzden ilk koşul false olduktan sonra diğer koşulun ne değer döndürdüğü önemsizdir.
      true AND true = true
      false and false = false
      false and true = false
      true and false = false
      Yani AND ile bağlanmış olan koşulların sonucunun true olabilmesi için bütün koşulların true olamsı yani sağlanıyor olması gerekmektedir.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?