logo

C'de Koşullu Operatör

Koşullu operatör aynı zamanda şu şekilde de bilinir: üçlü operatör . Koşullu ifadeler, ifadenin çıktısına bağlı olan karar verme ifadeleridir. İki sembolle temsil edilir, yani '?' Ve ':'.

Koşullu operatör üç işlenen üzerinde çalıştığından üçlü operatör olarak da bilinir.

Koşullu operatörün davranışı şuna benzer: if-else 'if-else' ifadesi aynı zamanda bir karar verme ifadesidir.

Koşullu operatörün sözdizimi

 Expression1? expression2: expression3; 

Yukarıdaki sözdiziminin resimli temsili aşağıda gösterilmiştir:

C'de Koşullu Operatör

Yukarıdaki sözdiziminin anlamı.

  • Yukarıdaki sözdiziminde ifade1, doğru veya yanlış değer olabilen bir Boole koşuludur.
  • İfade1 doğru bir değerle sonuçlanırsa ifade2 yürütülür.
  • İfade2'nin yalnızca sıfırdan farklı bir değer döndürdüğü zaman doğru olduğu söylenir.
  • İfade1 yanlış değer döndürürse ifade3 yürütülür.
  • İfade3'ün yalnızca sıfır değeri döndürdüğü zaman yanlış olduğu söylenir.

Üçlü veya koşullu operatörü bir örnek üzerinden anlayalım.

 #include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; } 

Yukarıdaki kodda girdiyi kullanıcının 'yaşı' olarak alıyoruz. Giriş aldıktan sonra koşul operatörü kullanarak koşulu uyguladık. Bu durumda kullanıcının yaşını kontrol ediyoruz. Kullanıcının yaşı 18'den büyük veya ona eşitse, o zaman ifade1 yürütülür, yani (printf('oylamaya uygun')) aksi takdirde ifade2 yürütülür, yani (printf('oylamaya uygun değil') ).

Yukarıdaki programın çıktısını inceleyelim.

Kullanıcının yaşını 18'in altında verirsek çıktı şu şekilde olur:

C'de Koşullu Operatör

Kullanıcının 18'in üzerindeki yaşını sağlarsak çıktı şöyle olur:

C'de Koşullu Operatör

Yukarıdaki iki çıktıdan da görebileceğimiz gibi eğer koşul doğruysa ifade1 yürütülür; aksi halde ifade2 yürütülecektir.

Şu ana kadar koşul operatörünün koşulu nasıl kontrol ettiğini ve koşula göre ifadeleri çalıştırdığını gözlemledik. Şimdi, bir değişkene değer atamak için koşullu operatörün nasıl kullanıldığını göreceğiz.

int'i string'e çevirme java

Bu senaryoyu bir örnek üzerinden anlayalım.

 #include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; } 

Yukarıdaki kodda 'a' ve 'b' olmak üzere iki değişken tanımladık ve 'a' değişkenine 5 değer atadık. Bildirimden sonra 'b' değişkenine koşul operatörünü kullanarak değer atadık. 'a'nın değeri 5'e eşitse 'b'ye 3, aksi halde 2 değeri atanır.

Çıktı

C'de Koşullu Operatör

Yukarıdaki çıktı, 'a' değişkeninin değeri 5'e eşit olduğundan 'b' değişkeninin değerinin 3 olduğunu gösterir.

Bildiğimiz gibi koşullu operatörün ve 'if-else' davranışının benzer olmasına rağmen bazı farklılıkları vardır. Gelin bunların farklılıklarına bakalım.

  • Koşullu operatör tek bir programlama ifadesidir, 'if-else' ifadesi ise ifadelerin parantez altına alındığı bir programlama bloğudur.
  • Değişkene değer atamak için koşullu operatör de kullanılabilir, ancak 'if-else' ifadesi atama amacıyla kullanılamaz.
  • İfadeler birden fazla olduğunda ifadeleri yürütmek için kullanışlı değildir, oysa 'if-else' ifadesi birden fazla ifade yürütülürken daha uygun olur.
  • İç içe geçmiş üçlü operatör daha karmaşıktır ve kolayca hata ayıklanamaz, oysa iç içe 'if-else' ifadesinin okunması ve bakımı kolaydır.