Merhaba arkadaşlar ,
mobilhanem.com sitemiz için anlattığımız/yayınladığımız Swift Dersleri serimize bu yazımızda Swift For ve While ile devam edeceğiz. Bir önceki yazımızda Swift Switch Case ve Range 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.
Swift For ve While
Swift’te döngü kullanmak için bir çok yöntem mevcuttur . Bugün for ve while yapılarından bahsedeceğim. Başlamadan önce döngü nedir kısaca bahsedenim . Döngüler tekrar eden işlemleri kısaca yapmamızı sağlayan yapılardır. Örneğin ekrana 1’den 10’a kadar olan sayıları yazdırmak istiyoruz 10 kere print komutuyla ayrı ayrı sayıları bastırmak yerine bir değişkeni her seferinde ekrana bastırıp artırarak yapabiliriz peki bunu nasıl yapabiliriz ? Öncelikle döngü kullanmadan nasıl yapabileceğimize bakalım.
print("1") print("2") print("3") print("4") print("5") print("6") print("7") print("8") print("9") print("10")
Baya uzun ve göze hiç hoş gelmeyen bir yöntem olduğuna hemfikirizdir umarım .Peki burda sadece 10’a kadar bastırdık ya 2004’e kadar ya da 1000000’a kadar bastırmamız gerekseydi ? İşte döngülerle bu işlem çok basit. Ve şimdi döngü kullanarak yapalım ve ardından yaptığımız işlemi adım adım açıklayalım.
for sayilar in 1...10 { print(sayilar) }
İşte sadece bu kadar. 3 satırda işlemimizi hallettik döngüsüz ise 10 satır sürüyordu. For döngüsünü kullanmak için izlememiz gereken notasyon , öncelikle döngümüzün ismini yazıyoruz ki döngümüz for döngüsüdür ardından kullanacağımız değişkeni yazıyoruz ben değişken ismi olarak sayilar ‘ı tercih ettim siz istediğiniz değişken ismini yazabilirsiniz. Ardından in keyword ‘ü ile bu değişkenimizin hangi range içinde olacağını daha önceki derslerimizde anlattığımız şekilde range ‘ini başlangıcı ve bitişini belirterek yazıyoruz . Ardından { } parantezleri arasında döngü sırasında hangi işlemi yapmak istiyorsak onları yazıyoruz.
Swift For Döngüsü Nasıl Çalışır ?
Nasıl kullanabileceğimizi öğrendik ama çalışma mantığınıda öğrenmemiz lazım . For döngüsü yukarıdaki gibi kullanıldığında sayilar değişkenine ilk olarak 1 değerini atar ve { } parantezleri içerisindeki işlemleri yapar ve son olarak sayilar değişkeninin değerini 1 artırarak sayilar değişkeninin verilen aralıkta olup olmadığını kontrol eder eğer belirtilen aralıkta ise tekrar aynı işlemleri yapar şayet aralıkların içerisinde değil ise for döngüsünden çıkar.
Küçük bir alıştırma 1 ile 100 arasındaki çift sayıları ekrana bastırma işlemini for döngüsünü kullaranarak yapmayı deneyiniz . Takıldığınız yerler olursa yorum kısmından yazabilirsiniz . Bir sonraki yazıda çözümü görebilirsiniz 🙂
Swift For Döngüsü ‘nde Range (Aralık)
Bir önceki dersimiz olan Swift Switch Case ve Range dersinde anlattığımız range işlemlerinin hepsini burada uygulayabiliriz.
for sayi in 1..<10 { print(sayi) }
Yukarıdaki örneğimizde Half-Open Range kullandık . Eğer range işlemlerine aşina değil iseniz bir önceki dersimizi okuyabilirsiniz. sayi değişkenimiz ilk olarak 1 ve ardından 2,3,4,5,6,7,8 değerlerini alıp ardından son olarak 9 değerini alacaktır ve sayi değişkeninin değeri 10 olduğunda for döngüsünden çıkacaktır ve 10 sayısını ekrana bastırmayacaktır.
Swift For Döngüsü Kullanarak String İçindeki Karakterleri Bulma
String türündeki bir değişkenin içerisindeki bütün karakterleri for döngüsü kullanarak ekrana bastırabiliriz ,
var isim = "Rüya" for karakter in isim { print(karakter) }
String ve Character dersimizde aynı işlemi yapan kod bloğunu göstermiştim sanıyorum şu an daha anlaşılır bir durumdayız.
Swift For Döngüsü Kullanarak 0 ile 100 Arasındaki Sayıların Toplamını Bulma
Yukarıda ki örneklerimizde 1’den 10’a kadar olan sayıları ekrana bastırabilmiştik . Şimdide 0 ile 100 arasındaki sayıların toplamını for döngüsü kullanarak bulalım.
var toplam = 0 for sayilar in 0...100 { toplam = toplam + sayilar } print(toplam)
Toplamı bulabilmek için öncelikle toplam isminde bir değişken oluşturduk ve değerine 0 atadık. Ardından for döngümüzü aralık vererek oluşturduk. Ve toplamı bulma işlemini yaptık. sayilar değişkenimiz öncelikle 0 değerini alacak (For döngümüz çalışırken sayilar değişkenimiz sırasıyla 0 dan 100’e kadar bütün değerleri alacaktır) ve toplam = toplam + sayilar işlemine gelecektir. Burada toplam değişkenimizin değeri ilk başta atadığımız 0‘dır ve sayilar değişkenimizin değeride 0‘dır bu iki değeri toplayıp toplam değişenimize atacaktır bu işlemi yaptıktan sonra for döngüsü sayilar değişkeninin değerini 1 artıracak ve değeri 1 olacaktır.
Ardından tekrar toplam = toplam + sayilar işlemine gelecektir. Fakat şu an sayilar değişkenimizin değeri 1‘dir , toplam değişkenimizin değeri ise 0‘dır ikisini toplayıp, toplam değişkenimize atayacaktır ve toplam değişkenimizin değeri 1 olacaktır . Bu işlemide yaptıktan sonra sayilar değişkenini 1 artırarak değerini 2 yapacaktır ve tekrardan toplam = toplam + sayilar işlemine gelecektir. Bu sefer ise sayilar değişkenimizin değeri 2 ve toplam değişkenimizin değeri 1‘dir ikisini toplayarak, toplam isimli değişkenimize 3 değerini atayacak ve tekrar sayilar değişkeninin değerini 1 artıracaktır. Bu işlemleri sayilar değişkeninin değeri 100‘ü aştığı anda yani 101 olduğunda bırakacak ve for döngüsünün altında bulunan print(toplam) satırına gelecektir. Bu satırda ise toplam değişkeninin değerini ekrana bastırılacaktır.Ve bu değer 5050‘dir.
Küçük bir not toplam = toplam + sayi işlemini toplam += sayi şeklinde daha kısa olarak yapabiliriz.
Swift For Döngüsü Kullanarak Faktöriyel Bulma
Hemen hemen her dilde örnek olarak verilen bir işlemdir faktöriyel bulma. Biraz klişe olmasına rağmen vermeden geçmek istemedim 🙂
var factoriyelSonucu = 1 var sayi = 6 for i in 1..<sayi{ factoriyelSonucu *= i } print(sayi,"Sayısının faktöriyeli = ", factoriyelSonucu)
Faktöriyel Tanımı: n doğal sayı olmak üzere, 1 den n e kadar olan doğal sayıların çarpımına ‘n faktöriyel’ denir. Tanımıda verdikten sonra açıklamaya başlayalım . İlk olarak sonucumuzu atayabileceğimiz bir factoriyelSonucu değişkenimizi oluşturduk ve 1 değerini atadık (çarpma işlemi yapacağımız için sonucu etkilemeyecektir) . Ardından faktöriyelini alacağımız sayıyı , sayi isimli bir değişken oluşturarak değerini 6 olarak belirttik. Ve döngümüzü 1‘den sayi değişkeninin 1 eksiğine kadar dönmesini söyledik böylece i değişkeni sırasıyla 1,2,3,4,5 değerlerini alacak ve içerideki factoriyelSonucu = factoriyelSonucu * i işlemini gerçekleştirecektir. Bu işlemler yukarıdaki 0 ile 100 arasındaki sayıları bulma işlemi ile aynı mantıktadır. i değişkeninin değeri 6 olduğu anda for döngüsünde çıkacak ve program akışına devam ederek print(sayi,”Sayısının faktöriyeli = “, factoriyelSonucu) işlemini yapacaktır ve ekrana 6 Sayısının faktöriyeli = 120 yazısını bastıracaktır.
Swift For Döngüsü ‘nde Değişken Tanımlamamak
Yapacağınız uygulamalarda zaman zaman döngülere çok ihtiyaç duyabilirsiniz . Ama her zaman swift for döngüsünde değişken vermek zorunda değiliz , tabiki o değişkeni kullanmayacaksak . Şimdi bununla ilgili bir örnek yapalım ,
for _ in 1...4 { print("4 Kere Çalışacak") }
Yukarıdaki gibi değişkeni yazdığımız yere _ (alt çizgi/underscore) koyarak derleyicimize bu değişken kullanmayacağım , değişken benim için önemli değil diyerek sadece döngünün belirttiğimiz aralıkta çalışmasını sağlıyoruz. Ve döngümüz 4 defa çalıştıktan sonra döngüden çıkıyor ve program akışına devam ediyor.
Swift While Döngüleri
Swift for döngüsü ‘nü inceledik şimdi sırada while döngüsü var . Bu iki döngü çeşidi hemen hemen benzerdir. While döngüsünde bir durum (koşul) belirtiriz ve bu koşul sağlandığı (true) sürece döngü çalışır . Döngüden çıkması için ise bu koşulun sağlanmaması (false) gereklidir.2 çeşit while döngüsü bulunmaktadır.
-
While Döngüsü
-
Repeat-While Döngüsü
Swift While Döngüsü
Kısa bir örnek ile while döngüsünün notasyonu aşağıdaki gibidir ,
while koşul { Yapılacak İşlemler }
Notasyonu yukarıdaki gibidir. while keyword ‘ünü girdikten koşulumuzu yazıyoruz ve altına yapıcağımız işlemleri şimdi çalışan bir örnek üzerinde inceleyelim ,
var bugun = 1 while bugun < 10{ print("Bugün ayın \(bugun). günü") bugun += 1 } print("10. Günü geçtik ve while'dan çıktı")
bugun isimli değişken tanımlayıp değerine 1 atadık . Ve ardından while keyword ‘ümüzü yazarak yanında koşulumuzu yani bugun<10 diyerek while döngümüzün bugun isimli değişkenin değeri 10 dan küçük olduğu sürece çalışmasını söyledik ve ardından döngümüzün içine girerek yapmak istediğimiz şeyleri yapmaya başladık ve ekrana bugun isimli değişkenin değerini bastırdık ve ardından bugun isimli değişkenin değerini 1 arttırdık . bugun isimli değişkenin değeri 10 olduğu anda while döngüsü duracak (çünkü 10<10 ifadesi false değeri döndürür) ve program akışına devam ederek bir alttaki satırdaki print komutunu çalıştıracak ve ekrana 10.Günü geçtik ve while’dan çıktı yazısını yazdıracak.
Swift Repeat-While Döngüsü
Öncelikle Repeat-While döngüsünün notasyonunu göstererek başlayalım ve ardından açıklamalarımızı yapalım ,
repeat { Yapılacak İşlemler } while koşul
While döngüsünden farklı olarak bir repeat keyword ‘ü mevcut . Reapeat-While döngüsünde aynı while döngüsündeki gibi koşulumuz bulunmakta ve bu koşul sağlandığı sürece repeat bloğundaki işlemler yapılmaktadır , koşulun sağlanmadığı an bloktan çıkar ve program akışına devam eder. Buradaki önemli fark ise repeat bloğu çalıştırılıp ardından koşulumuzun sağlanıp (true) sağlanmadığına (false) bakılacaktır . Bu demek oluyor ki koşul doğru olsun ve ya olmasın repeat bloğu en az 1 kere çalışacaktır . Bu çok önemli bir farktır. Öncelikle bu farkı bir örnekle gösterelim ,
var yasim = 24 repeat{ print("benim yaşım \(yasim)") } while yasim > 30
yasim isimli değişkenimizi oluşturduk ve değerine 24 atadık . Ardından repeat bloğumuzda ekrana yaşımızı bastırdığımız bir print komutu ekledik ve sonrasında ise while ile yasim isimli değişkenin 30’dan büyük olduğu sürece repeat bloğunu çalıştırmasını söyledik. Farkı görmemiz için , yasim değişkeninin değeri 24 ve biz 30 ‘dan büyük olduğu sürece repeat bloğunun çalışmasını söyledik fakat playground üzerinde yazarsanız göreceksiniz ki ekrana “benim yaşım 24” yazılmış. Ve bu işlemi sadece 1 kere yapar ardından while yaşım > 30 satırına gelerek 24>30 ifadesini yapar ve false değeri döner ve repeat bloğuna gitmez ve normal akışına devam ederek bir sonraki satıra devam eder. Kısaca repeat-while döngüsünde repeat bloğu en az 1 kere çalıştırılır . Ardından koşul sağlandığı sürece repeat bloğunu çalıştırır . Sağlanmıyor ise repeat bloğu çalıştırılmadan program akışına devam eder.
Yaptığım örnekleri playground üzerinde görmek için indirebilirsiniz.
Swift For ve While
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.
7
Yorum Yaz