Kotlin Dersleri – Ranges Kullanımı

Merhaba Arkadaşlar,
Mobilhanem.com üzerinden anlattığımız / yayınladığımız Kotlin Dersleri yazı serimize bu dersimizde Kotlin Ranges Kullanımı ile devam edeceğiz.

Nedir bu Ranges dediğnizi duyar gibiyim. Range Türkçe karşılığını aralık olarak düşünebiliriz. Yani basitce şöyle anlatalım , elimizde bir değer var ve biz bu değerin belirtilen bir aralıkta olup olmadığını kontrol edeceğiz. İşte bu durumda Ranges Kullanımı işimizi kolaylaştırıyor.

Ranges Kullanımı

Yukarıda kısaca açıklamaya çalıştık. Örnekler vererek örnekler üzerinden anlatmaya devam edeceğiz.

Elimizde bir sayı var ve bu sayının 1 ila 10 arasında mı olduğunu kontol edelim. Bunu bildiklerimizle aşağıdaki şekilde yapabiliriz.

var x = 8
if(x>=1 && x<=10)`{
    print("x 1 ile 10 arasında")
}

Konsol Çıktısı:
x 1 ile 10 arasında

Yukarıdaki hem x>=1 koşulu , hemde x<=10 koşulunun sapüğlanıp sağlanmadığına bakıldı. Bunun yerine aşağıdaki gibi bir kod kullanımı daha kolay olacaktır.

var x = 8
if (x in 1..10) { // => x>=1 && x<=10
    println("x 1 ile 10 arasında")
}

Konsol Çıktısı:
 x 1 ile 10 arasında

Yukarıda ki kodda gördüğünüz gibi “in” deyimi ile verilen aralığın içinde olup olmadığını kontrol ettik. Peki aralığı nasıl oluşturduk . Aralığıda “..”  kullanarak 1..10 şeklinde tanımladık. Sayımız 1’den başlayıp 10 da dahil olmak üzere bu aralıkta ise bize true değeri , aksi durumda false değeri dönecektir.

Örnekleri arttıralım.

var x = 30
 
when (x) {
    in 1..10 -> print("x 1 ile 10 aralığında")
    !in 10..20 -> print("x 10 ile 20 aralığının dışında")
    else -> print("Yukarıdakilerin hiçbiri")
}


Konsol Çıktısı:
x 10 ile 20 aralığının dışında

Yukarıdaki kodda When koşul yapısı kullandık. Bir önceki  dersimizde When Koşul yapısı kullanımını bulabilirsiniz. Burda kodu anlatmamız gerekirse x imiz önce “in 1..10” koşulu ile x imiz bu aralıkta mı kontrol ettik. X’imiz 30 olduğu için bu aralıkta değil. Alt satırda ise “!in 10..20” koşulu ile x’imiz 10 ile 20 aralığının dışında mı kontrol ettik ve 30 bu aralığın dışında olduğu için koşulumuz sağlanmış oldu.

Örneklere devam edelim.

Biz bugüne kadar ki derslerimide for döngü yapısını görmedik ama Ranges’in birlikte en çok kullanacağı yapı for döngüsü olduğu için bir kaç örnekte for ile birlikte vereceğim .

Not: for döngü yapısını ilerleyen derslerde ayrıntılı bir biçimde anlatacağız.

    
for (i in 1..3)
    println(i) 
}

Konsol Çıktısı:
1
2
3

for ile Ranges aralığındaki tüm değerler sırası ile i değişkenine atandı ve ekrana bastırıldı. Peki 3 ten 1’e değerleri bastırmak istersek aşağıdaki yöntem ise yarayacak mı?

 
for (i in 3..1)
    println(i) 
}

Konsol Çıktısı:

Konsol çıktısı boş olacaktır , çünkü Ranges mantığında “..” işareti küçük değerden büyük değere gitmeyi destekler. Dolayısıyla yukarıdaki kodumuz döngüye giremiyecektir. Peki biz büyük değerden küçük değere (3’ten 1’e) gitmek istersek nasıl yapacağız ?

DownTo

Evet aralığımız büyükten küçüğe ise “..” yerine “downTo” kullanıyoruz.

for (i in 4 downTo 1){
   println(i)
}


Konsol Çıktısı:
4
3
2
1

Yukarıda gördüğünüz gibi aralığımız büyükten küçüğe ise downTo kullanıyoruz.

Step

Peki sıralamızı 1’er 1’er değilde 3’er 3’er gitmesini istersek ne yapmalıyız ?

 for (i in 1..40 step 3){
         println(i) // prints "13"   

 }

Konsol Çıktısı:
1
4
7
10
13
16
19
22
25
28
31
34
37
40

Gördüğünüz gibi ilk değerden başlayarak 3 ‘er atlayarak i değerine atadı, bizde ekrana bastırdık. Aynı işlemi downTo kullanarakta yapabiliriz.

for (i in 40 downTo 1 step 3){
         println(i) // prints "13"   

 }

Konsol Çıktısı:
40
37
34
31
28
25
22
19
16
13
10
7
4
1

Until

Son olarak Until kullanımından bahsedeceğim. Biz bir aralık verirken verdiğimiz son değerin aralığa dahil olmasını istemeyebiliriz. 1’den 10’a kadar ancak 10 dahil değil gibi bir koşul gerekli olabilir. Bu durumda ise “..” yerine “until” kullanırız.

for (i in 1 until 10) { 
     println(i)
}

Konsol Çıktısı:
1
2
3
4
5
6
7
8
9

Gördüğünüz gibi 1 den başladı ve 9’a kadar olan değerleri bastırdı.

Range konusu çoğu zaman karşımıza çıkacağı için aşağıda örnekler vermeye devam edeceğim.

  • Range’i bir değişkene atamak istersek:
val oneToNine = 1..9 // range mizi oneToNine değişkenine atadık
val x = 3
if(x in oneToNine){
   print("x 1 ile 9 arasında")
}

Konsol Çıktısı:
x 1 ile 9 arasında
 val countingDown = 100.downTo(0) //100 downTo 0
 val rangeTo = 10.rangeTo(20) //10 .. 20
  • Range sadece sayılarla kullanılmak zorunda değildir. Ancak sayı dışındaki değerleri for döngüsü ile kullanmak için farklı işlemler gerekir. İlerleyen derslerimizde for döngüsü ile kullanımından bahsedeceğiz. Şimdilik Range’n sadece sayılar ile kullanılmadığını bilmemiz yeterlidir. Aşağıda örnek sayı dışında kullanımına örnektir.
val aToZ = "a".."z" 
val x = "c"
if(x in aToZ){
   print("x değişkeni a ile z arasında")
}

Konsol Çıktısı:
x değişkeni a ile z arasında

 

Arkadaşlar Kotlin Ranges Kullanımı dersimizin sonuna geldik. Bir sonraki dersimizde Kotlin dilinde While Döngüsü dersimiz ile devam edeceğiz. Bir sonraki dersimizde görüşmek dileğiyle…

Konu hakkında sorularınızı konu altından ve ya SoruCevap sitemizden sorabilirsiniz.

Tüm Kotlin derslerimiz için tıklayınız.

19

Taha Kırca

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı

8 Yorum

Haftalık Bülten

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