Döngüler


Merhaba R severler,

Bugünkü dersimizde R programlamada döngüleri işleyeceğiz. Öncelikle döngünün ne olduğuna bir bakalım. Bir kod bloğunu belirli bir duruma kadar sürekli işlenmesi durumuna döngü diyoruz. Yani iki sayının toplamını tek satırda çözebiliriz fakat yüz adet sayının toplamı için yüz satır komut mu yazacağız? Elbette hayır. İşte bu noktada döngüler devreye girmektedir. Bu noktada yapılacak iş bir sayaç değişken oluşturup bunu kontrollü bir şekilde yüze kadar saydırmak ve bu işlem yapılırken kod bloğu içerisinde sayıları toplamak olacaktır. C programlamada olduğu gibi burada da 3 farklı döngümüz mevcuttur.

1)      Repeat loop

2)      While loop

3)      For loop

NOT: Döngüler Asla Sonsuz Olamazlar.

1) Repeat Döngüsü

Bu döngü şart sağlandığı sürece tekrar ve tekrar çalışır. Kullanımı aşağıdaki gibidir.

repeat {

   commands

   if(condition) {

      break

   }

}

Repeat komutu ile döngü sağlanırken if deyimi ile kontrol sağlanmaktadır. Şimdi ekrana 5 defa “merhaba” yazan döngü komutlarına bakalım.

                a=0

                d="merhaba"

                repeat{

print(d)

a=a+1

if (a>5) {

break

}

}

Bu kod bloğunu çalıştırdığınız zaman a değişkeni birer birer artmaktadır yani a bizim sayaç görevini görmektedir. Koşul için yine a değişkenini kontrol ettik. Sonuca baktığınızda bize 5 defa değil 6 defa “merhaba” yazdıracaktır. Bu döngülerin çalışma mantığından kaynaklanmaktadır. İlk adımda a değişkeni arttırılmıyor yani sıfır değerini koruyor. Bundan dolayı ekranda 6 kere merhaba yazısını görüyoruz.

2) While Döngüsü

Bu döngünün diğerlerinden farkı ise şart sağlandığı sürece bu döngünün çalışıyor olmasıdır. Yukarıdaki döngüyü while ile yazmaya çalışalım

a=0

while(a<5){

print(d)

a=a+1

}

Bu kod bloğunda işlemler istediğimiz gibi işleyecektir ve ekrana 5 defa merhaba yazacaktır. Görüldüğü gibi döngünün içerisinde – repeat döngüsünden farklı olarak – i deyimi kullanmadık ve while komutunun hemen yanına şartımızı gösterdik.

3) For Döngüsü

Genellikle dizi ve vektörlerin içerisinde bulunan elemanlarla ilgili bir işlem yaparken kullanılmaktadır. Yani diğer döngülerde yaptığımız işleri for ile de yapabiliriz fakat liste yada dizilerde daha iyi sonuç vermektedir.

v=LETTERS[1:6]

for( i in v ){print(i)}

Yukarıdaki komutlarda alfabedeki ilk 6 harfi ekrana yazdırdık. Dikkat edilirse burada ne if deyimi kullandık ne de sayaç arttırdık. Buda şu anlama geliyor ki i bizim sayacımız ise for döngüsü sayacı otomatik arttırmaktadır.

Genel olarak toparlarsak;

·         For döngüsü sayacı otomatik arttırmakta ve genellikle dizi ve vektörlerde kullanılmaktadır.

·         While döngüsü bir şarta bağlı olarak döngü adımlarını sağlamaktadır.

·         Repeat döngüsü sayaç ve şart için fazladan komut istemektedir ve ilk adımda sayacı 0’dan başlatır.

Konu ile ilgili soru ve önerileriniz için form sayfamızı ve chat penceresini kullanabilirsiniz. Forum linki: http://scansu.net/forum/showthread.php?tid=6

 

Yazar Kimdir?

Sıtkı Cansu, 19 Ekim 1985 yilinda Konya-Beyşehir'de dogmustur.İlk, orta ve liseyi Beyşehir'de bitirmis olup Konya-Ereğli Selçuk MYO Bilgisayar programcılığı ve Mugla Sıtkı Koçman Üniversitesi İstatistik bölümünden mezun olmustur. Çesitli yerlerde web tasarımcı ve veri tabani yöneticisi olarak çalışan yazar, son üç senedir ingilizce öğretmenliği yapmaktadir. Şu anda yüksek lisansını tamamlamak üzere Mugla Üniversitesinde öğrenim görmektedir.