Ternary Operator Nedir?

Türkçede “koşul operatörü” olarak bilinen ve programlamada yaygın olarak kullanılan “ternary operator” (diğer adıyla conditional operator), üç bileşenli yapısıyla dikkat çeker. “Ternary” kelimesi, Latince kökenlidir ve “üçlü” veya “üçe ait” anlamına gelir. Matematikte ve bilişim bilimlerinde, bu terim genellikle üç elemanı veya değeri olan yapılar için kullanılır.

Programlama dillerinde “ternary operator,” bir koşula bağlı olarak iki farklı değerden birini döndürmek için kullanılır. Yapının üç bileşeni şunlardır:

  1. Koşul: Değerlendirilecek ifade.
  2. Doğru değer: Koşul doğruysa döndürülecek sonuç.
  3. Yanlış değer: Koşul yanlışsa döndürülecek sonuç.

Operatörün çalışma mantığı basittir: Eğer koşul doğruysa belirtilen ilk değer döndürülür; koşul yanlışsa ikinci değer döndürülür. Bu yapı, kısa ve okunabilir bir şekilde karar mekanizmaları kurmaya olanak tanır.

Örneğin, şu ifade:

x = 5
sonuc = "Pozitif" if x > 0 else "Negatif veya sıfır"

x değişkeninin pozitif olup olmadığını kontrol eder ve sonucu buna göre belirler. Eğer x > 0 koşulu doğruysa, sonuc “Pozitif” olur; aksi halde “Negatif veya sıfır” değerini alır.

C dilinden tutun da, Java’da, JavaScript’te ve daha birçok başka dilde şu söz dizimi kullanılır: koşul ? değer1 : değer2

  1. İlk olarak “koşul” değerlendirilir.
  2. Eğer “koşul” doğruysa (yani true ise), değer1 döndürülür.
  3. Eğer “koşul” yanlışsa (yani false ise), değer2 döndürülür.

Koşul operatörü, if-else koşul yapısı ile aynı işlemi yapar, ancak aynı koşul ifadesinin daha kısa ve okunaklı bir şekilde yazılabilmesini sağlar. Kafa karışıklığına yol açmaması için ilgili koşulları parantezler içine de alabilirsiniz.

İlk olarak JavaScript’te if-else kullanılarak yazılmış aşağıdaki örneği inceleyelim:

function yasDurumu(yas) {
    if (typeof yas === 'undefined') {
        return "Yaş bilgisi eksik";
    } else {
        return yas >= 18 ? "Yetişkin" : "Çocuk";
    }
}
console.log(yasDurumu(20));  // Yetişkin
console.log(yasDurumu(15));  // Çocuk
console.log(yasDurumu());    // Yaş bilgisi eksik

Bu örnekte, ilk olarak if kullanarak yas değişkeninin tanımlı olup olmadığını kontrol ediyoruz. Eğer tanımlı değilse “Yaş bilgisi eksik” döndürüyoruz. Tanımlıysa, else bloğunda ternary operatörü kullanarak 18 yaşından büyük olup olmadığını kontrol ediyoruz. Bu kontrol sonucuna göre “Yetişkin” ya da “Çocuk” mesajını döndürüyoruz.

Yukarıdaki örneğimizi bu sefer de “Ternary operator” kullanarak kodlayalım:

function yasDurumu(yas) {
    return yas >= 18 ? "Yetişkin" : "Çocuk";
}
console.log(yasDurumu(20));  // Yetişkin
console.log(yasDurumu(15));  // Çocuk

Yukarıdaki örneğimizde de benzer şekilde eğer verilen koşul sağlanıyorsa yas değeri soru işaretinden (?) hemen sonraki değere eşit olacaktır. Buna karşılık, eğer koşul sağlanmıyorsa çift noktadan (:) sonraki değere eşit olacaktır.

Bu iki yaklaşım arasında fonksiyonellik açısından bir fark yoktur. Ancak ikinci yöntem, kodu daha kısa ve okunabilir hale getirdiği için tercih edilmektedir. Özellikle tek satırda bir if-else ifadesini temsil etmek istiyorsanız “ternary” operatörü oldukça kullanışlıdır. Ancak karmaşık durumlar veya çoklu şartlarla uğraşırken “if-else” ifadeleri daha okunabilir ve anlaşılır olacaktır.

Ternary operator, birçok programlama dilinde kullanılabilmektedir. Bakınız:

  • C
  • C++
  • C#
  • Java
  • JavaScript
  • Ruby
  • Swift
  • PHP

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu