Merhaba arkadaşlar ,
mobilhanem.com sitemiz için anlattığımız/yayınladığımız Swift Dersleri serimize bu yazımızda Swift Continue ve Break ile devam edeceğiz. Bir önceki yazımızda Swift For ve While 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 Continue ve Break
Bir önceki dersimizde döngüleri nasıl kullanabileceğinizi göstermiştim şimdi ise döngüler içinde programın akışını nasıl değiştirebileceğimizi göstereceğim. Öncelikle continue kelimesinin karşılığı olarak devam et , break kelimesinin karşılığınıda devam etme olarak düşünebiliriz. Continue ve break komutlarını bütün döngü çeşitlerinin içerisinde kullanabiliriz.
Swift Continue
Continue komutu kullanıldığında , döngü mevcut yinelemeyi durduracak ve tekrar döngüyü başlatacaktır. Önemli olan ise döngü baştan başlamaz kaldığı yerden devam eder. Biraz karmaşık gelmiş olabilir ama aşağıdaki görsel ile kolaylıkla mantığını kavrayabilirsiniz.
Şimdi küçük bir örnek ile continue ‘nun çalışma mantığını tamamen kavrayalım.
for i in 0...10{ if i == 3{ continue } print(i) }
İlk olarak i değişkenimizin değeri 0’dan başlayıp , 10’da dahil olmak üzere aradaki değerleri sıra sıra alacaktır.
i değişkenimizin değeri 3 olana kadar print komutu çalışacak ve ekrana sırasıyla 0,1,2 değerlerini basacaktır.
Ardından i‘nin değeri 3 olduğunda if koşulu sağlanacak ve if bloğuna girecektir.
if bloğuna girdikten sonra continue komutu programın akışını değiştirecek ve for döngüsüne gönderecektir.
Böylelikle print komutu çalışmayacak ve ekrana 3 değeri bastırılmayacaktır.
Ardından 4,5,6,7,8,9 ve 10 değerlerini ekrana basacaktır.
Kısaca continue komutu döngüyü tamamen bitirmeden programın akışını döngüye yönlendirir. Eğer continue ‘nun üzerinde print(i) yazılmış olsaydı derleyicimiz bu komutu çalıştırır mıydı ? Düşüncelerinizi yorum olarak belirtebilirsiniz.
Swift Continue Label Kullanımı
Continue komutunu bir başka kullanabileceğimiz şekli ise label yani etiket vererek kullanmaktır. Öncelikle bunu yapabilmek için döngümüzün başına bir isim vermemiz gerekmektedir ardından ise continue komutunun yanına hangi döngüye gideceğiniz söylememiz gerekir. Daha rahat anlaşılabilmesi açısından yukarıda yaptığımız aynı örneği label kullanarak yapalım.
birinciFor: for i in 0...10{ if i == 3{ continue birinciFor } print(i) }
Evet döngümüze yukarıdaki gibi isim verip , continue komutunuda verdiğimiz isime yönlendirebiliyoruz. Burada döngümüzün adı birinciFor ‘dur. Burada yaptığımız işlem label kullanmadan yaptığımız işlemin aynısıdır ve aynı çıktıları verirler. Bu örnek için çok mantıklı sayılmasada nested(karmaşık) döngülerde bu yöntem oldukça işe yarayan bir yöntemdir ve yazdığınız kodun okunabilirliğini oldukça artıracaktır.Şimdi de iç içe iki adet for kullanarak deneyelim.
birinciFor: for i in 1...2 { ikinciFor: for j in 1...5 { if j == 4 { continue birinciFor } print("j = \(j)") } print("i = \(i)") }
Burada iki adet döngümüz bulunmaktadır ve bunlardan birincisinin etiketi gördüğünüz gibi birinciFor diğeri ise ikinciFor ‘dur. Yazdığım bu kod ise 2 kere (birinciFor ‘un dönme sayısı) ikinciFor döngümüzü çağıracaktır. Ve ikinci döngümüzde j değişkeninin 4 olması durumunda continue komutu ile programın akışı birinciFor döngüsüne yönlendirilmiştir. Evet şimdi bu kodu açıklayalım.
İlk olarak ilk for döngümüzün adı birinciFor olmuştur. Ardından i değişkenimizin değeri 1 oldu ve ikinci for döngümüzün isimi ikinciFor olarak belirlendi. j değişkenimiz 1 değerini aldı ve if koşulu sağlanmadı ve ekrana “j=1” yazısı bastırıldı.Koşul j değeri 4 olana kadar sağlanmayacak ve o ana kadar sırasıyla “j=2″,”j=3” yazılarını ekrana bastıracaktır.
j değişkeninin değeri 4 olduğunda ise if koşulu sağlanacak ve continue birinciFor komutu çalıştırılacaktır. Bu komut çalıştırıldığında programın akışı ismi birinciFor olan döngüye geçecektir. Ve ardından i değişkenimizin değeri 2 olacaktır.Ve tekrar ikinciFor döngümüze gelecek j ‘nin değerleri sırasıyla 1,2 ve 3 olacak ekrana sırasıyla “j=1″,”j=2″,”j=3” yazılarını bastıracaktır. j ‘nin değeri 4 olduğunda ise tekrar yukarıda yaptığı işlemleri yapacak ve ismi birinciFor olan döngüye geçecektir. Fakat range içinde olmadığından birinciFor döngüsünden çıkacaktır.
Buradaki önemli ayrıntılardan biriside print(“i = \(i)”) komutunun hiç çalıştırılmamış olmasıdır.
Swift Break
Break komutu kullanıldığında, döngünün koşulu ne olursa olsun döngüyü sonlandırır ve devam etmez. Continue ‘nun aksine tekrar başa dönmez ve döngüyü tamamen bırakır. Hemen continue için yaptığımız örneği break ‘ e göre uyarlayalım ve aradaki farkı görelim ,
for i in 0...10{ if i == 3{ break } print(i) }
i değişkenimiz ilk olarak 0 değerini alacak ve ekrana “0” yazısı bastırılacak ardından “1” ve “2” yazıları bastırılacaktır. i değişkeninin değeri 3 olduğunda ise if koşulu sağlanacak ve if bloğuna girecektir ve break komutu çalıştırılacaktır. Break komutu çalıştıktan sonra for döngüsü devam etmeyecektir . Yani i ‘nin değeri 4 olmayacaktır.
Önemli bir not , daha önceki derslerimde switch-case yapısında default bloğuna çalıştırılabilir bir komut yazmamız gerektiğini ve buraya basit bir print komutu yazabileceğimizi söylemiştim. Onun yerine artık default bloğuna break komutunu yazarak default bloğundan çıkmasını sağlayabilirsiniz.
Yaptığım örnekleri aşağıdaki linkten indirebilirsiniz. While döngüsü ile birlikte continue kullanımını gösteren bir örnekte bulunmaktadır.
Swift Continue ve Break
Swift Eğitimleri serimizdeki tüm derslerin listesine buradan ulaşabilirsiniz.
3
if koşulunun içerisine girdikten sonra print içerisinde ki değeri yazdırır daha sonra for’a gider.
programın çıktısı 0,1,2,3,4,5,6,7,8,9,10 olur.
Keske once bir deneseydiniz…