Mobil Programlama

iOS

DERS PROGRAMI
iOS 101 Ders Programı

Çevrim Oluşturma (Döngü ,İng:Loop)

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi


Çevrimsel işlem veya tekrarlı işlem (iterasyon, ing. iteration) bilgisayarı aynı işlemler grubunu belirli bir koşul sağlanana kadar tekrar tekrar yapmak için yönlendirir. Swift dilinde çevrim yapısını oluşturmak için 3 deyim mevcuttur:

  • while deyimi
  • do.... while deyimi
  • for deyimi

WHILE DEYİMİ
 

While deyiminin yazılış biçimi aşağıdaki gibidir:

While ifade {Deyim;}

veya

while ifade

{ Deyim1;

Deyim2;

...

Deyim_n;

}


while deyiminin çalışma biçimi ise aşağıdaki gibidir:

Önce ifade hesaplanır. İfade true (doğru) ise deyim icra edilir. Deyim icra edildikten sonra, programın kontrolü while deyiminin başına geçer ve işlem tekrarlanır yani ifade yeniden hesaplanarak sonucuna göre işlem yapılır.

Bu işlem, ifadenin değeri false (yanlış) olana kadar kadar sürer. Bu durumda program deyimi izleyen noktaya gider.

İfadenin değeri true (doğru) olduğu sürece while bir sonsuz çevrim (infinite loop) oluşturur.

Deyim yerinde genellikle bir deyimler grubu bulunur; bu durumda while yapısının, deyimler grubunu gövde içine almak için gerekli olan, {} sembolleri kullanılmış olan ikinci şekli söz konusu olacaktır.

İkinci şekli de benzer biçimde çalışır; ifade tekrar tekrar hesaplanır; ifadenin değeri true olduğu sürece bir sonsuz çevrim oluşur ve bunun her adımında Deyim1, Deyim2, .., Deyim_n ile belirtilen deyimler grubu yeniden icra edilir.

While çevrim yapısı ile,çevrim içindeki deyim grubu ya da işlem grubunun, kontrol edilen bir koşula bağlı olarak tekrarlanabilmesi olanağı mevcuttur.

Böylece, işlemlerin ne kadar tekrarlanacağının önceden belli olmadığı fakat değeri değişen bir değişken ya da ifadenin değerinin kontrol edilmesi ile belirlenebildiği uygulamalarda bu çevrim yapısını kullanmak uygun olacaktır.

Aşağıda, while çevrimi ile ilişkili çeşitli uygulamalar verilmiştir:

 

ÖRNEK: 1’DEN 10’A KADAR SAYILARIN TOPLAMININ HESAPLANMASI

Aşağıdaki örnek kodda, while komutu ile 1+2+3+…10 toplamı hesaplanmaktadır:

 

Bulunan sonuç program çıktısı olarak TOPLAM=55 olarak yazdırılmıştır.

REPEAT WHILE KOMUTU

While komutuna benzeyen ancak while’a göre küçük bir farklılık gösteren kontrol komutudur. Yazılış biçimi,

repeat {

komutlar

}while koşul

şeklindedir.

 

Çalışma mantığı ise şöyledir:

Önce do’nun {} sembolleri ile belirtilen gövdesine (body) herhangi bir kontrol yapmadan girilir; gövdedeki komutlar icra edilir. Gövde içindeki icra bitince while sözcüğünü izleyen koşul kontrol edilir.

Koşul doğru ise kontrol geri döner ve gene do’nun gövdesi ile devam eder; koşul yanlış ise, sadece bu durumda, kontrol do-while yapısını izleyen komuta geçer ve oradan devam eder.


ÖRNEK:

Aşağıdaki programı çalıştırınız:

var s,i:Int
s = 0
i = 1
repeat { s = s+i
 
    i += 1
    
} while i<=10
print("s=\(s)")


 

Aşağıdaki sonucu elde edeceksiniz:

=55


Program listesine bakılınca kolayca anlaşılacağı gibi bu program ile 1+2+3+…10 toplamı 55 olarak bulunmuştur.

FOR DEYİMİ

for deyiminin C’de de mevcut olan şekli,

for ilkDegerAtama ; Koşul ; Artım {

Deyimler

}

şeklindedir. Bildiğiniz gibi C’de syntax biraz farklıdır; C’de, ilkdegeratama, koşul ve artım parantez içine yazılır.

Yukardaki for yapısının çalışma biçimi şu şekildedir: for parametresine bir ilk değer atanır; ilk değer koşulu sağlıyorsa Deyimler icra edilir sonra parametre artım kadar arttırılır.

Bu işlem parametre değeri koşulu sağlamadığı anda biter ve for gövdesinin ({}) dışına çıkılır.

ÖRNEK:

Bu örnekte de for deyimi yardımı ile 1’den 10’a kadar tam sayıların toplamı hesaplanmış ve sonuç TOPLAM=55 şeklinde yazdırılmıştır:

 


var s: Int

s = 0

for i in 1...10 {
    s = i+s
}

print("TOPLAM=")
print(s)

 

 

ÖRNEK:

1-3+5-7+9-11+13-15 toplamını hesaplayacak bir Swift kodu yazınız.

ÇÖZÜM:

Burada +/- şeklinde değişen işareti ayarlamak için işaret adlı bir değişen kullanacağız; bunun ilk değeri +1 olacak ve daha sonra her adımda işaret=-isaret ifadesi ile değiştirilecektir.

Problemin çözümü olan kod ve sonucu aşağıda verilmiştir:

 

Toplam değeri beklendiği gibi -8 olarak bulunmuştur. for çevriminde artım her adımda 2 olmuştur.

FOR IN KONTROL YAPISI

For in kontrol yapısı bir veri koleksiyonu içindeki değerler kullanılarak icra edilir.

ÖRNEK:

 

 

 

 

 

 

Burada i parametresinin değeri, verilen 2...6 (2, 3, 4, 5, 6) koleksiyonu içinden sıra ile alınır ve for döngüsü bu parametre değerlerinin her biri için icra edilir.

Aşağıdaki örnekte ise 25 değeri hesaplanmaktadır:


 

 

FOR IN İLE SİNÜS TABLOSU OLUŞTURMAK

import Foundation

for i in 0...90

{ let t = sin(Double(i) * 3.14159 / 180)

print("DERECE...\(i)....SİNÜSÜ....\(t)")

}

PROGRAMIN ÇIKTISI

DERECE...0....SİNÜSÜ....0.0

DERECE...1....SİNÜSÜ....0.0174523916973633

DERECE...2....SİNÜSÜ....0.034899467236131

DERECE...3....SİNÜSÜ....0.0523359120770581

DERECE...4....SİNÜSÜ....0.0697564149191078

DERECE...5....SİNÜSÜ....0.0871556693173223

DERECE...6....SİNÜSÜ....0.104528375299215

DERECE...7....SİNÜSÜ....0.121869240979189

……

DERECE...84....SİNÜSÜ....0.994521765925535

DERECE...85....SİNÜSÜ....0.996194588877491

DERECE...86....SİNÜSÜ....0.997563961819935

DERECE...87....SİNÜSÜ....0.998629467629309

DERECE...88....SİNÜSÜ....0.999390781742769

DERECE...89....SİNÜSÜ....0.999847672257053

DERECE...90....SİNÜSÜ....0.99999999999912

FOR IN İLE BİR DİZİNİN ELEMANLARINA ERİŞMEK

For in kontrol yapısı bir dizinin elemanlarına erişmek için de kullanılabilir. Aşağıdaki örnekte sehir adlı dizinin elemanları listelenmektedir: