Kotlinde Kontrol Yapıları, Döngüler ve Range Kavramı

İsmail Talha DENGİZ
2 min readMar 14, 2020

Control Flow(Kontrol Yapıları)

1- If-else

If-else yapıları belirli bir durumun sağlanıp sağlanmadığına göre yapılmasını istediğimiz işlemlerde kullanılan yapıdır. Kotlinde bu yapı state olarak kullanılabildiği gibi Javadan farklı olarak expression olarak da kullanılabilir.

State olarak kullanımı aşina olduğumuz gibi bilinen if-else yapısıdır.

Expression kullanımda ise if-else bloğundan dönen değer değişkene atanabilir. Expression kullanımda dikkat edilmesi gereken if-else parantezlerinin son satırı değişkene değer olarak atanır. State kullanımda else bloğunu kullanmak isteğe bağlıdır fakat expression kullanımda else bloğu olmak zorundadır. Çünkü blokların hiçbiri değer döndürmezse else bloğu bir değer döndürecektir ve bu değer değişkene atanacaktır.

Expression kullanımından dolayı Javadaki ternary operatörü Kotlinde yoktur. Bunun yerine aşağıdaki gibi kullanılır.

Birden fazla şartın bulunduğu durumlarda ise farklı farklı if yapısını kullanabileceğimiz gibi else if yapısını kullanmak daha performanslıdır. Çünkü else if yapısında şart sağlandığında diğer bloklar gezilmez. Birden fazla if bloğu kullandığımızda ise şart sağlanmasına rağmen diğer bloklarda gezilir.

2- when

when yapısı Javadaki switch-case yapısına karşılık gelmektedir. if yapısında olduğu gibi when de hem state hem de expression olarak kullanılabilir. Yukarıda bahsettiğimiz gibi when yapısının expression kullanımında da else olmak zorundadır. If else ile yapabildiklerimizi when ile de yapabiliriz.

when state kullanımı :

when expression kullanımı :

when içerisine yazdığımız karşılaştırılacak ifade, değer yerine değişken de olabilir.

Birden fazla durumda çalışmasını istediğimiz kod satırı varsa bu durumları ‘ , ’ ile ayırabiliriz. Bu veya anlamı katar.

Range

Başlangıç ve bitiş değeri olan bir aralık tanımlamamızı sağlar. Range yapısını when ve for yapılarıyla kullanabiliriz.

Range yapısını when ile birlikte kullanırken in veya !in ile istediğimiz değerin range içirisinde olup olmadığı kontrol edilebilir.

LOOPS(DÖNGÜLER)

1- for

Belirli sayıda bir işlem yaptırmak istediğimizde kullanabiliriz. for içerisinde tanımladığımız değerlere ulaşabileceğimiz gibi dizi tanımlaması yaparak dizinin elemanlarına, index değerlerine veya her ikisine beraber de ulaşabiliriz.

for ile benzer olarak repeat(size) kullanabiliriz. Fakat bu durumda bir aralık değil kaç defa işlemin yapılacağı ile ilgili tek bir size, değer verebiliriz. Bu sayede herhangi bir listeye ihtiyaç duymadan tekrarlayan işler gerçekleştirebiliriz.

2- while

İstenilen koşul sağlandığında kod bloğu içerisine girilir ve istenilen değer kadar blok içerisindeki işlemler gerçekleştirilir.

Döngülerde return veya break kullandığımızda döngü sonlanır. continue ile istenen şart sağlandığında o anki değeri atlayarak döngüye devam eder.

İç içe for döngüleri kullandığımızda bir üstteki for döngüsünün değil de daha üstteki döngülere ulaşmak istiyorsak label kullanabiliriz.

Fonksiyonlar konusunda görüşmek üzere keyifli okumalar :)

--

--