C Dilinde Koşullu İfadeler: If, Else, İç İçe If ve Örnekleri
⚡ Akıllı Özet
C dilindeki koşullu ifadeler, test edilen bir koşul doğru olduğunda kod bloklarını çalıştırarak programın akışını kontrol eder ve if, if-else, iç içe ve else-if merdiven yapıları aracılığıyla karar vermeyi mümkün kılar.

C'de Koşullu İfade Nedir?
C programlama dilinde koşullu ifadeler, koşullara bağlı olarak kararlar almak için kullanılır. Koşullu ifadeler, etraflarında herhangi bir koşul olmadığında sırayla yürütülür. Bir ifade bloğuna bir koşul koyarsanız, yürütme akışı, koşulun değerlendirdiği sonuca bağlı olarak değişebilir. Bu sürece 'C' dilinde karar verme denir.
aksine C dilindeki döngüler Tekrarlanan kod, koşullu ifadeler bir yolu seçer.
'C' programlamada koşullu ifadeler aşağıdaki iki yapının yardımıyla mümkündür:
- If ifadesi
- Eğer-değilse ifadesi
Bir program, değerlendirilen koşulun sonucuna göre hangi ifadenin yürütüleceğine karar verdiği için buna dallanma da denir.
If ifadesi
Güçlü koşullu ifadelerden biridir. If ifadesi bir programın yürütme akışını değiştirmekten sorumludur. If ifadesi her zaman bir koşulla birlikte kullanılır. If'in gövdesinde herhangi bir ifade yürütülmeden önce ilk olarak koşul değerlendirilir. If ifadesinin sözdizimi aşağıdaki gibidir:
if (condition)
instruction;
Koşul doğru veya yanlış olarak değerlendirilir. True her zaman sıfır olmayan bir değerdir, false ise sıfır içeren bir değerdir. Talimatlar tek bir talimat veya küme parantezleri { } içine alınmış bir kod bloğu olabilir.
Aşağıdaki program, 'C' programlamada if yapısının kullanımını göstermektedir:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Çıktı:
num1 is smaller than num2
Yukarıdaki program, iki sayının eşitliğini kontrol etmek için if yapısının kullanımını göstermektedir.
- Yukarıdaki programda num1, num2 ile değerleri sırasıyla 1, 2 olan iki değişkeni başlattık.
- Daha sonra hangi sayının en küçük, hangi sayının en büyük olduğunu kontrol etmek için bir test ifadesiyle if'i kullandık. İf yapısında ilişkisel bir ifade kullandık. num1'in değeri num2'den küçük olduğundan koşul doğru olarak değerlendirilecektir.
- Böylece ifadeyi If bloğunun içine yazdıracaktır. Bundan sonra kontrol bloğun dışına çıkacak ve program başarılı bir sonuçla sonlandırılacaktır.
İlişkisel Operaları
C dilinde, doğru veya yanlış döndüren, karar verme ve koşulları test etme amaçlı Boolean ifadeler oluşturmak için kullanılabilecek altı ilişkisel operatör bulunmaktadır:
<- daha az<=— küçük veya eşit>— daha büyük>=— büyük veya eşit==— eşit!=— eşit değil
Eşitlik testinin (==) atama operatöründen (=) farklı olduğuna dikkat edin çünkü bu, bir programcının bunları karıştırırken karşılaştığı en yaygın sorunlardan biridir.
Örneğin:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Çıkış:
You succeed
Sıfır dışında bir değer olarak değerlendirilen bir koşulun doğru olarak kabul edildiğini unutmayın.
Örneğin:
int present = 1; if (present) printf("There is someone present in the classroom \n");
Çıktı:
There is someone present in the classroom
If-Else ifadesi
If-else ifadesi, If ifadesinin genişletilmiş bir versiyonudur. If-else'in genel biçimi şu şekildedir:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
Bu tür bir yapıda, test ifadesinin değeri doğruysa, doğru ifade bloğu yürütülür. Test ifadesinin değeri yanlışsa, yanlış ifade bloğu yürütülür. Her durumda, yürütme tamamlandıktan sonra, kontrol otomatik olarak If bloğunun dışındaki ifadelere aktarılır.
Aşağıdaki programlar if-else yapısının kullanımını göstermektedir:
Bir değişkeni belirli bir değerle başlatacağız ve değerin ondan küçük veya ondan büyük olup olmadığını belirleyecek bir program yazacağız.
Hadi başlayalım.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
Çıktı:
The value is greater than 10
- 19 değerinde bir değişken başlattık. Bir 'C' programı kullanarak sayının 10'dan büyük veya küçük olduğunu bulmamız gerekiyor. Bunun için if-else yapısını kullandık.
- Burada num<10 koşulunu sağladık çünkü değerimizi 10 ile karşılaştırmamız gerekiyor.
- Gördüğünüz gibi ilk blok her zaman doğru bir bloktur; bu, eğer test ifadesinin değeri doğruysa o zaman If olan ilk bloğun yürütüleceği anlamına gelir.
- İkinci blok bir else bloğudur. Bu blok, test ifadesinin değerinin yanlış olması durumunda yürütülecek ifadeleri içerir. Programımızda num değeri 10'dan büyük olduğundan test koşulu false olur, aksi halde blok çalıştırılır. Böylece çıktımız “Değeri XNUMX’dan büyük” olan else bloğundan olacaktır. If-else sonrasında program başarılı bir sonuçla sonlandırılacaktır.
'C' programlamasında, if-else ifadelerinin iç içe geçmesi olarak adlandırılan birden fazla if-else yapısını birbiri içinde kullanabiliriz.
Koşullu İfadeler
Bir if-else ifadesini belirtmenin başka bir yolu da ?: operatörünü kullanmaktır. Koşullu bir ifadede ?: operatörü yalnızca if ve else ile ilişkili tek bir ifadeye sahiptir.
Örneğin:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
Çıktı:
y =2
İç İçe If-else İfadeleri
Bir dizi karar gerektiğinde iç içe if-else kullanılır. Yuvalama, bir if-else yapısının başka bir yapı içinde kullanılması anlamına gelir.
İç içe if-else kullanımını gösteren bir program yazalım.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
Çıktı:
The value is:1
Yukarıdaki program bir sayının 10'dan küçük veya büyük olup olmadığını kontrol eder ve sonucu iç içe if-else yapısını kullanarak yazdırır.
- Öncelikle değeri 1 olan bir num değişkeni tanımladık. Daha sonra if-else yapısını kullandık.
- Dıştaki if-else bloğunda, belirtilen koşul bir sayının 10'dan küçük olup olmadığını kontrol eder. Koşul doğruysa, ancak o zaman içteki blok çalıştırılır. Bu durumda, koşul doğru olduğundan içteki blok işlenir.
- İç blokta, değişkenimizin 1 değerini içerip içermediğini kontrol eden bir koşul daha bulunmaktadır. Koşul doğru olduğunda, If bloğu işlenir; aksi takdirde else bloğu işlenir. Bu durumda, koşul doğru olduğundan If bloğu yürütülür ve değer çıktı ekranına yazdırılır.
- Yukarıdaki program, bir değişkenin değerini yazdıracak ve başarıyla çıkacaktır.
Değeri değiştirmeyi deneyin. değişken Programın nasıl davrandığına bakın.
NOT: İç içe if-else yapılarında, birden fazla if-else yapısı kullanıldığı için girintilere dikkat etmeliyiz; bu durum, tek tek yapıları anlamayı zorlaştırır. Doğru girinti, programın okunmasını kolaylaştırır.
İç içe Else-if ifadeleri
Çok yollu kararlar gerektiğinde iç içe else-if kullanılır.
'C' programlamasında else-if merdivenlerinin nasıl oluşturulduğunun genel sözdizimi aşağıdaki gibidir:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
Bu tür yapıya else-if merdiveni denir. Bu zincir genellikle bir merdivene benzediği için else-if merdiveni olarak da adlandırılır. Test ifadeleri yukarıdan aşağıya doğru değerlendirilir. Doğru bir test ifadesi bulunduğunda, onunla ilişkili ifade yürütülür. Tüm n test ifadesi yanlış olduğunda, varsayılan else ifadesi yürütülür.
Bir program yardımıyla gerçek çalışmayı görelim.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
Çıktı:
First class
Yukarıdaki program notu bir testte alınan notlara göre yazdırır. Yukarıdaki programda else-if ladder yapısını kullandık.
- İşaretli bir değişkeni başlattık. else-if ladder yapısında çeşitli şartları sağladık.
- Değişken işaretlerinden elde edilen değer, ilk koşulla karşılaştırılacaktır çünkü onunla ilişkili ifadenin doğru olması çıkış ekranında yazdırılacaktır.
- İlk test koşulu yanlış çıkarsa ikinci koşulla karşılaştırılır.
- Bu işlem, tüm ifadeler değerlendirilene kadar devam edecektir; aksi takdirde kontrol else-if yapısından çıkacak ve varsayılan ifade yazdırılacaktır.
Değeri değiştirmeyi deneyin ve çıktıdaki değişikliği fark edin.





