Bu bölümde kontrolleri işleyeceğiz. Tabi öncesinde kısa bir operatörlere değinmek lazım.
Operatörler
Toplama, çıkarma, çarpma, bölme işlemlerini yapmak için matematikte herkesin bildiği operatörler vardır (+,-,*,/). Bunların haricinde kıyaslama yapmak ve eşitlikleri göstermek için de operatörler vardır. Kontrolleri yaparken özellikle bunları kullanıyoruz. “Hava güneşli mi?” veya “Hız sabit mi?” gibi kıyaslamalar günlük hayatta yapabiliyoruz. Bunları programlamaya dökmek için de aşağıdaki operatörleri kullanıyoruz.
Kotlinde toplama (+), çıkarma (-), çarpma (*) ve bölme (/) normal matematik operatörleri ile aynı işlevde kullanılıyor. Eşittir işareti eşitlik göstergesi. Büyüktür (>) ve küçüktür (<) işlemleri ise sayılar için büyüktür küçüktür işlemine denk gelmektedir.
(!) işareti ise değil anlamına gelmektedir. a != b işlemi : a eşit değildir b anlamına gelmektedir.
En önemli operatörler başlangıç için bunlar. İstisna birkaç kullanımda ise
a++ -> a’yı 1 artır
++a -> a’yı 1 artır
a– -> a’yı 1 azalt
–a -> a’yı 1 azalt
(+)’nın önce gelmesi ve sonra gelmesi farketmeksizin aynı sonuçları verdiğini yazdık. ( (-)’de kendi özelinde aynı şekilde). Şimdi durum şu. Eğer o satırda o an bir işlem yapılacaksa, örneğin, ekrana bir şey yazdırılacak ve bunun artırılmış şekilde yazılmasını istiyorsak ++a kullanıyoruz. Eğer o satırda değil sonraki satırda artırılmasını ekranda ise o anki sayıyı görmek istiyorsak a++ kullanıyoruz. (-) içinde benzer işlemler geçerli. Biraz kafa karıştırıcı hemen bir örnekle üzerinden geçelim
var a = 5 System.out.println(a++) System.out.println (a) System.out.println ("------------------") var b = 5 System.out.println(++b) System.out.println (b) System.out.println ("------------------") var c = 5 c++ System.out.println(c) var d = 5 System.out.println ("------------------") ++c System.out.println(d) System.out.println ("------------------")
Bu kodun çıktısını sizde dikkatlice incelerseniz ne anlatmak istediğimi anlayacaksınız.
Sizde aynı mantıkla çıkarma işlemini (-) değerlendirebilirsiniz.
Kontroller
if Kontrolleri
if İngilizce’den Türkçe’ye eğer olarak çevirilebilir. Eğer doğruysa bunu yap. Değilse şunu yap mantığı var. Önemli bir işin varsa dışarı çık. Değilse #evdekal gibi 🙂
var work : Boolean = false fun main() { // work = true ise işim var false ise işim yok work = true workControl() System.out.println("-------------------") workControl() } fun workControl() { if(work ==true) { System.out.println ("İşimi halletmek için dışarı çıktım") work = false // işimi hallettim artık work = false }else { System.out.println("Dışarıda işim yok #evdekal ") } }
Bu kotlin kod satırlarında anlatılan şudur. İlk olarak main’e bakıyoruz. Mainde work değişkeni true olarak setleniyor. Kişinin dışarıda işi var. İşi var mı? kontrolü için workControl() fonksiyonuna yönlendiriyor. Burada work kontrol ediliyor işi olduğu için dışarı çıkıyor. Ve işini hallettiğini belirtmek için work değişkeni false’a setleniyor. Tekrar control çalıştırıldığında ise bu sefer #evdekal mesajı görünüyor.
if – else if – else olarak if kontrolleri çoğaltılabilir. Daha fazla dallanma, ayrıştırma işlemi yapılabilir. Fakat bu tip durumlar için gayet basit bir kontrole geçelim.
Switch – When Kontrolleri
Çok fazla if else durumları olduğunda when kullanılabilir. Daha düzenli ve daha anlaşılır bir görünüm sağlayabilir.
When kontrolünü anlatmak içinde ayların kaçıncı aya karşılık geldiğini anlamamızı sağlayan bir kotlin programı yazalım.
fun main() { val monthNumber = 10 var mountString : String? = null //var mountString = "" when (monthNumber){ 1 -> mountString = "Ocak" 2 -> mountString = "Şubat" 3 -> mountString = "Mart" 4 -> mountString = "Nisan" 5 -> mountString = "Mayıs" 6 -> mountString = "Haziran" 7 -> mountString = "Temmuz" 8 -> mountString = "Ağustos" 9 -> mountString = "Eylül" 10 -> mountString = "Ekim" 11 -> mountString = "Kasım" 12 -> mountString = "Aralık" else -> mountString = "Miladi takvim 12 tane ay ile sınırlıdır." } System.out.println(mountString) }
When ile görüldüğü üzere birçok kontrolü içeren düzenli bir yapı elde ettik. Mount number kullanıcıdan istenilerek hangi aya denk geldiği kolaylıkla bulunabilir. mountNumber’in kontrolünü when ile yaparak istenilen ay mountString’e setleniyor. Sonunda da ekrana yazdırılıyor
Bu kotlin kodlarında;
var mountString : String? = null //var mountString = ""
görüldüğü üzere alttaki satırı kullanmadık üstteki olanı kullandık. Bunun sebebi güvenli kod yazmaktan ötürü gelmektedir. Ben burada anlatırken kolay olması açısından alttakini kullabilirdim. Ama bu sisteme alışmak açısından güvenli kod yazmaya, sonradan tanımlamaya, initialize etmeye alışmak için bunları yavaş yavaş yazmaya başlayalım.
Kaynaklar : https://kotlinlang.org/