Ternary operatörü
- C kursu
- Başlangıç
- Ders 39/116
- 4 dk
? : ile tek satırda koşullu ifade yazmayı öğrenirsin.
Ternary operatörü
? ve : ile tek satırda koşullu ifade yazılır. Yazım: koşul ? doğru_değer : yanlış_değer. Sonuç bir değer üretir; bu yüzden atamada kullanılabilir.
int a = 5, b = 9;
int max = (a > b) ? a : b;
printf("Büyük: %d\n", max); // 9Parantez koşul için şart değildir ama okunurluğu artırır. if/else ile aynı mantık: if (a > b) max = a; else max = b;. Ternary sade ifadelerde tercih edilir.
printf içinde ternary
Ternary doğrudan printf içinde de kullanılabilir; bu bir if/else bloğunu sade biçimde yazar.
int n = 7;
printf("%s\n", (n % 2 == 0) ? "Çift" : "Tek");Burada %s ternary'nin döndürdüğü dizeyi basar. İç içe ternary de mümkündür ama okunurluğu düşürür; bu durumda if/else tercih edilir.
Uygulama Büyük olanı ternary ile bul
Bir C programı yaz. int a = 5; ve int b = 9; tanımla. int max = (a > b) ? a : b; ile büyük olanı bul. printf("Büyük: %d\n", max); ile yazdır. #include <stdio.h> başta olsun.
Başlangıç kodu
#include <stdio.h>
int main(void) {
// a ve b tanımla, ternary ile max bul, yazdır
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
int a = 5;
int b = 9;
int max = (a > b) ? a : b;
printf("Büyük: %d\n", max);
return 0;
}Beklenen çıktı
Büyük: 9
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 (a > b) ? a : b ne döndürür?
int a = 5, b = 9;
int max = (a > b) ? a : b;- Her zaman a
- Her zaman b
- Toplamları
- Büyük olanı Doğru cevap
Açıklama: Koşul doğruysa a, yanlışsa b; yani büyük olanı verir.
2 Ternary'i tamamla
int sign = (x >= 0) ? 1 : ____;
int sign = (x >= 0) ? 1 : -1;
Açıklama: Negatif sayılar için negatif işaret.
3 Ternary ve if/else eşleştir
| Kavram | Anlamı |
|---|---|
koşul ? |
Koşul denetimi |
: doğru |
Birinci değer |
: yanlış |
İkinci değer |
if/else |
Bloklar |