Mevcut Durum ve Kotlin’de Kontrol Akış İfadeleri – Döngüler

Onur ÖZÇELİK
3 min readOct 24, 2018

--

Mevcut Durum Analizi

Bu güncede (blog) Kotlin programlama dili üzerine yazmaya başlamadan önce motivasyonum dili öğreterek öğrenmekti. Zaman içinde bir öğretici olmanın zorluklarını yaşamaya başladım. Öğretici olmak bir çok açıdan zordu. Programlama üzerine yazılar yazıyordum ve hedef kitlemi sanırım doğru olarak seçmemiştim. Daha doğrusu programlama ve Kotlin’i bilmeyen kişileri öncelikli olarak hedef alıyordum. Ama bir sorun vardı. Yazdığın yazıların derinliği yeterli değildi. Her ne kadar iyi niyetli olarak bazı temel kavramları açıklamaya çalışsamda bu bana göre yetersiz oluyordu. Çok kısa yazılar yazıyordum ve bu okuyucu için yeterince ilgi çekici olmuyordu. Keza örnek olarak verdiğim kod parçalarında basit örnekler bulmak benim için zordu ve bazı, belki bir çok yazımda verdiğim örnekler konuyu anlatmak için yetersiz kalıyordu. Daha uygun örnekler vermek isterdim ama bende dili yeni öğreniyordum. Her ne kadar uzun yıllardır kod yazıyor olsam da bir dili sıfırdan öğretmek farklı yetkinlikler gerektiriyor. Bu yetkinliklere sahip olsam dahi süreç yürümeyebilirdi. Çünkü Kotlin dili programlamayı hiç bilmeyen kişilerin öğrenmesi için tasarlamamıştı. Aksine C++, Java veya C# vb. dillerden en az birisini bilen kişilerin öğrenmesi için tasarlanmıştı. Tabi JVM üzerinde çalıştığı işin Java bilenler diğer dilleri bilenlere göre biraz daha avantajlı. Yukarıda saydığım sebeplerden ötürü artık yazılarımda Kotlin dilini anlatırken öğretici olarak değil de bir öğrenici olarak ne kadar öğrendiysem anlatacağım. Muhtemelen verdiğim örneklerde başlangıç seviyesinde değil biraz daha üst seviyeli olacak.

Kotlin’de Kontrol Akış İfadeleri — Döngüler

For Döngüsü

Kotlin’de for döngüsü aynı sanal makine üzerinde çalıştığı abisi Java programlama diline göre bir miktar daha farklıdır. Bu döngü bir yineleyici (iterator) sağlayan her hangi bir yapı üzerinde çalışabilmektedir. Daha çok Java programalama dilinin uzaktan kuzeni C# programlama dilindeki foreach döngüsüne benzemektedir. Söz dizim örneği aşağıdaki kod parçasında verilmiştir.

for döngüsünün bir yineleyici (iterator) sağlayan herhangi bir yapı üzerinde çalışabildiğinden bahsetmiştik. Yineleyici sağlayan yapılar özetle:

  • Üye veya uzantı işlevi olarak iterator() işlevini sağlamalı ve
  • Üye veya uzantı işlevi olarak next() işlevini sağlamalı ve
  • Üye veya uzantı işlevi olarak geri dönüş tipi Boolean olan hasNext() işlevini sağlamalı ve
  • Tüm bu işlevler operator anahtar sözcüğü ile işaretlenmeli

Kotlin for döngüsü ile deneme kodları yazarken C++, Java ve C# programlama dillerinde aşina olduğum söz dizimi az çok aşağıdaki kod parçasına benzeyen kodu yazamadığımı fark ettim.

İlk başta biraz şaşırdım ve bunun muadili Kotlin’de nedir ki derken belirli bir aralıktaki sayılar üzerinde yineleme yapmak için aralık (range) ifadelerinin kullanıldığımı fark ettim. Aralık ifadelerinin söz dizimi aşağıdaki kod parçasında verilen örnek 1 ve örnek 2 gibi olmaktadır.

Bir aralık veya dizi için yazılan for döngüsü indeks (index) temelli bir döngüye derlenir ve iterator nesnesi oluşturulmaz. — Kotlin Resmi Dokümantasyonu

Eğer bir dizi veya liste üzerinde for döngüsü ve indeks ile yineleme yapmak istersek yukarıdaki kod parçasındaki örnek 3 gibi kod yazmamız gerekmektedir. Buna alternatif olarak hem indeks hemde bu indekse karşılık gelen değeri dögü değişkeni olarak kullanmak istersek yukarıdaki kod parçasındaki örnek 4 gibi kodumuzu yazmamız gerekmektedir.

While Döngüleri

While ve do..while döngüleri C++, Java veya C#’tan farklı değildir. Burada hatırlanılması gereken en önemli nokta while döngüsünde koşul geçerliliği en başta sınanırken, do..while döngüsünde en sonda sınanır. Bundan dolayı do..while döngüsünün gövdesindeki kodun en az bir defa çalışır. While döngüleri için söz dizimi aşağıdaki kod parçasında verilmiştir.

Özet olarak döngüler bir programlama dilinin temel yapı taşları arasında yer alırlar ve döngüleri herhangi bir dilde kod yazarken yineleme gerektiği durumunda sıklıkla kullanırız. Aşağıdaki kod örneğinde döngüler ve ‘*’ karakteri kullanılarak konsolda bir üçgen şekli oluşturulmaktadır. Üçgenin yüksekliğini kullanıcı kodu çalıştırdığında girebilmektedir.

Bir sonraki yazıda görüşmek üzere.

--

--

Onur ÖZÇELİK

Hi, I am a Software Engineer. I believe in a Hindu proverb "To know read. To learn write. To master teach"