Ternary operatörü
- C++ kursu
- Başlangıç
- Ders 39/116
- 5 dk
? : 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
#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
#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
std::string result = (age >= 18) ____ "Ehliyet" : "Bekle";
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?
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.