Kotlin Döngüler (Loops) – Ders 4

Kotlin Döngüler (Loops) – Ders 4

Kotlin döngüleri hemen hemen diğer programlama dillerindeki döngülere benzer. Esasen ise kendisi gibi yüksek seviye programlama dillerinden olan Python‘a benzer.

Döngüler, genel itibariyle tekrar eden işlemleri gerçekleştirmek üzere vardırlar. Örneğin; 1’den 10’a kadar programa yazdırmak için döngüleri kullanırız. Döngüleri iyi kavramak programlama dillerinin temelini iyi anlama konusunda son derece önemlidir.

for Döngüsü

for‘un kullanımı

val myArrayOfNumbers = arrayOf (12, 15 , 18, 21)
for (k in myArrayOfNumbers)  {
    val z = k /3*5
    println(z)
}

Burada for döngüsünün bir dizi içinde sırayla geziniyor. Tek tek kendisi arama yapıyor. Çok daha az kod yazıyoruz. Java, C++ gibi dillere kıyasla for içinde tanımlamalarımız vs. çok daha az.

for burada ilk elemandan son elemana kadar her bir elemanı k içerisine koyuyor. Sonrasında her bir iterasyonda k ‘ üzerinde işlemler yapılarak z’ye atanıyor ve z ekrana yazdırılıyor.

Eğer indisler üzerinden işlem yapmak isteseydik (eski usül ama lazım olabilir);

val myArrayOfNumbers = arrayOf (12, 15 , 18, 21)

for (i in myArrayOfNumbers.indices) {
    val qz = myArrayOfNumbers[i] /3*5
    println(qz)
}

Sonuç yukarıdaki ile aynı olacaktır.

Kotlin‘in bir diğer güzelliği ise bazı işlemleri çok daha kısaltabiliyor olmamız.

Örneğin b değişkenine 0-9 arası sayıları yazdırdığımız bir uygulamayı yapmak için

for (b in 0..9) {
    println(b)
}
  • Eğer 0’dan 9’a 9 dahil olmadan yazdırmak isteseydik
  • 0,1,2,3,4,5,6,7,8
for (b in 0 until 9) {
println(b)
}
  • Eğer 0’dan 9 a kadar ikişer ikişer saymasını isteseydik
  • 0,2,4,6,8
for (b in 0 until 9 step 2 ) {
println(b)
}
  • 9’dan geriye 3’er 3’er saysaydık
  • 9,6,3,0
for (b in 9 downTo 0 step 3 ) {
println(b)
}

Bu örnekler bu şekilde çoğaltılabilir ben son olarak foreach’i göstermek istiyorum

val myArrayOfNumbers = arrayOf (12, 15 , 18, 21)

myArrayOfNumbers. forEach  {
	println(it/3*5)
}

Bu da yine ilk işlemimizle aynı sonucu verecektir. Burada sonucu herhangi bir değişkene atamıyoruz. Otomatik olarak “it” nesnesinin içinde tutuluyor. Bizde böylece kullanabiliyoruz.

while Döngüsü

While‘da for‘dan çok farklı bir şey yapmıyor esasında. Fakat for’un aksine tek bir syntax düzeni var.

var j = 0

while (j <3 ) {
    println(j)
    j++
}

Burada da 0’dan 3’e kadar 3 dahil olmayacak şekilde yazdırdık.

continue ve break

continue ve break döngü değiller fakat döngüler ile doğrudan alakalı anahtar kelimelerdir. continue döngünün iterasyonunu bir sonrakine geçirirken, break döngüyü tamamen sonlandırır. Yani 1’den 10 a kadar saydığımızı düşünürsek 5’te bir karşılaştırma yapıp continue kullanırsak 5 hariç tüm sayıları yazdırır.(1,2,3,4,6,7,8,9,10) break kullanırsak 5 ve sonrasını yazdırmaz. (1,2,3,4)

for (x in 0..10) {
    if (x == 5 ) {
        continue
    }
    println(x)
}
for (x in 0..10) {
    if (x == 5 ) {
        break
    }
    println(x)
}

break ve continue kullanımını da öğrendik. Son bir detay var continue ile ilgili. @ kullanımı. @ continue ile kullanıldığında döngüyü istediğimiz bir yerden devam ettirmemizi sağlıyor.

Asal sayıları yazdırmakla ilgili şuana kadar öğrendiklerimizle güzel bir örnek yapalım. Bu örnekte 2’den 100’e kadar asal sayıları yazdıran kotlin programını kodlayalım

outer@ for (n in 2..100) {
    for (d in 2 until n) {
        if (n % d == 0) continue@outer
    }
    println("$n asaldır")
}

Kod’da outer yerine istediğiniz bir zıplama noktası yazabilirsiniz. Evrensel olarak outer kullanmak ve ingilizce kullanmak kodun okunabilirliği açısından olumlu olacaktır.

Evet şimdilik bu kadar. Bir sonraki derste görüşmek üzere.

Bir cevap yazın