“Ternary Operator” Nasıl Çalışır?

Türkçede koşul operatörü olarak bilinen “ternary operator“, bir başka deyişle conditional operator, üç terimli olarak kullanılan tek operatörüdür.

“Ternary Operator” Nedir?

“Ternary” kelimesi, Latince kökenli bir terimdir ve “üçlü” ya da “üçe ait” anlamına gelir. Matematikte ve bilişim bilimlerinde, bu terim genellikle üç bileşeni veya üç değeri olan yapıları tanımlamak için kullanılır.

Özellikle programlama dillerinde “ternary operator” olarak adlandırılan yapı, adından da anlaşılacağı üzere üç bileşenden (koşul, doğru değer, yanlış değer) oluşur. Bu yüzden bu ismi alan operatörümüz, bir koşulun doğru olup olmadığına göre iki değerden birini döndürür. Eğer koşul doğruysa, operatör ilk değeri döndürür, aksi takdirde ikinci değeri döndürür.

C dilinden tutun da, Java’da, JavaScript’te ve daha birçok başka dilde aşağıdaki gibi 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 ile 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, genellikle “if-else” ifadeleri daha okunabilir ve anlaşılır olacaktır.

Ternary operator, birçok programlama dilinde kullanılabilmektedir, bunlardan bazıları aşağıda gösterilmiştir:

  • 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