CodeBlanks Logo Icon CodeBlanks

Ternary operatörü

? : ile tek satırda koşullu ifade yazmayı öğrenirsin.

Ternary operatörü

Basit bir if/else'yi tek satırda yazmanın yolu ternary operatörüdür. Yazımı koşul ? doğru_değer : yanlış_değer biçimindedir ve sonuç bir değer üretir.

Örneğin: std::string result = (age >= 18) ? "Ehliyet" : "Bekle";. Bu, dört satırlık bir if/else ile aynı işi yapar ancak atama bağlamında daha kısadır. Karmaşık koşullarda okunabilirlik düşebilir; o durumda if/else tercih edilir.

Ternary atamada

Ternary en çok atama deyimlerinde işe yarar. int max = (a > b) ? a : b; yazarak iki sayının büyüğünü tek satırda bulursun. Aynı ifade if/else ile üç-dört satırda yazılırdı.

Ternary bir değer ürettiği için onu doğrudan std::cout << ((a > b) ? a : b) biçiminde de kullanabilirsin. İç içe ternary yazmak mümkün ama okunabilirliği düştüğü için kaçınılır.

Uygulama Büyük sayıyı bul

a ve b değişkenleri verilmiş. Ternary operatörüyle int max = (a > b) ? a : b; biçiminde büyük olanı max değişkenine ata ve std::cout ile yazdır. Çıktı 12 olmalı.

Başlangıç kodu

main.cpp
#include <iostream>

int main() {
    int a = 7;
    int b = 12;
    // max değişkenine ternary ile büyük olanı ata ve yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

int main() {
    int a = 7;
    int b = 12;
    int max = (a > b) ? a : b;
    std::cout << max << std::endl;
    return 0;
}

Beklenen çıktı

12

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Ternary operatörünü yaz

Soru
std::string result = (age >= 18) ____ "Ehliyet" : "Bekle";
Cevap
std::string result = (age >= 18) ? "Ehliyet" : "Bekle";

Açıklama: ? operatörü koşul doğruysa sol tarafı seçer.

2 Ternary parçalarını eşle

Kavram Anlamı
? Koşul doğruysa
: Koşul yanlışsa
(age >= 18) Koşul
"Ehliyet" Doğru değer

3 (5 > 3) ? "evet" : "hayır" ifadesinin sonucu nedir?

main.cpp
auto r = (5 > 3) ? "evet" : "hayır";
  • "hayır"
  • true
  • 5
  • "evet" Doğru cevap

Açıklama: 5 > 3 doğru olduğundan sonuç "evet" olur.

Başlangıç bölümündeki tüm dersler