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.

  • 🔤 Eğer koşulu: Bir if ifadesi, yalnızca koşul sıfırdan farklı bir doğru değer olduğunda bloğunu çalıştırır; sıfır ise yanlış anlamına gelir.
  • 🔀 Eğer-aksi halde: If-else yapısı, koşul doğru olduğunda bir kod bloğunu, yanlış olduğunda ise başka bir kod bloğunu çalıştıran bir "yanlış" dalı ekler.
  • 🇧🇷 İlişkisel operatörler: Altı operatör (<, <=, >, >=, ==, !=) her koşulun test ettiği Boolean ifadelerini oluşturur.
  • 🪜 Aksi takdirde koşullu merdiven: İç içe geçmiş else-if yapısı, yukarıdan aşağıya doğru birden fazla ifadeyi kontrol eder ve ilk doğru sonucu veren dalı veya varsayılan else durumunu çalıştırır.
  • ❓ Üçlü operatör: ?: koşullu ifadesi, tek bir satırda iki değerden birini döndüren kısa bir if-else yapısı yazar.
  • 🤖 Yapay zeka yardımı: GitHub Copilot, if-else mantığını taslak haline getirir ve inceler, eksik parantezleri işaretler ve daha temiz koşullar önerir.

C dilinde Koşullu İfadeler: IF, IF Else ve İç İçe IF Else

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:

  1. If ifadesi
  2. 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.

C dilinde if ifadesi akış diyagramı

  1. Yukarıdaki programda num1, num2 ile değerleri sırasıyla 1, 2 olan iki değişkeni başlattık.
  2. 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.
  3. 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

C If-Else Deyimi Akış Şeması

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

C dilinde if-else ifadesinin örnek çıktısı

  1. 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.
  2. Burada num<10 koşulunu sağladık çünkü değerimizi 10 ile karşılaştırmamız gerekiyor.
  3. 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.
  4. İ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.

C dilinde iç içe if-else ifadesi

  1. Öncelikle değeri 1 olan bir num değişkeni tanımladık. Daha sonra if-else yapısını kullandık.
  2. 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.
  3. İç 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.
  4. 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

C dilinde iç içe Else-if yapısı

Ç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.

  1. İşaretli bir değişkeni başlattık. else-if ladder yapısında çeşitli şartları sağladık.
  2. 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.
  3. İlk test koşulu yanlış çıkarsa ikinci koşulla karşılaştırılır.
  4. 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.

SSS

Bir if-else yapısı, aralıklar ve ilişkisel kontroller de dahil olmak üzere herhangi bir Boolean ifadesini test eder. yer değiştir Bir değişkeni sabit değerlerle karşılaştırır ve çoğu durumda daha hızlı bir atlama tablosu oluşturur.

"Askıda kalan else" problemi, parantez kullanılmadan iç içe if ifadeleri kullanıldığında, bir else ifadesinin hangi if ifadesine ait olduğu konusunda belirsizlik yaratır. C dilinde, bir else ifadesi her zaman en yakın eşleşmeyen if ifadesiyle eşleşir. Süslü parantezler eklemek bu karışıklığı ortadan kaldırır.

Evet. Mantıksal operatörler koşulları birleştirir: && her iki tarafın da doğru olmasını gerektirir, || en az birinin doğru olmasını gerektirir ve ! bir sonucu tersine çevirir. Örneğin, if (age > 18 && citizen) ifadesi iki koşulu birlikte tek bir if içinde test eder.

Gövde tek bir ifade olduğunda parantezler isteğe bağlıdır, bu nedenle C yalnızca bir sonraki satırı çalıştırır. İki veya daha fazla ifade için, bunları gruplandırmak amacıyla parantezler gereklidir. Her zaman parantez kullanmak, mantık hatalarını önleyen güvenli bir alışkanlıktır.

Kısa devre değerlendirmesi, sonuç bilindiği anda durur. && operatörü ile yanlış bir sol taraf sağ tarafı atlar. || operatörü ile doğru bir sol taraf sağ tarafı atlar. Bu, gereksiz işlerden ve güvenli olmayan işlemlerden kaçınmayı sağlar.

Evet. Bir else-if merdiveni yukarıdan aşağıya doğru değerlendirilir ve ilk doğru koşulda durur. Geniş koşulları dar koşullardan önce yerleştirmek, dar durumları gizleyebilir; bu nedenle testleri en özelden en genele doğru sıralayın.

Evet. Yapay zekâ kodlama asistanları, yorumlardan koşullu bloklar oluşturur, uzun if-else zincirlerini daha temiz yapılara dönüştürür ve == yerine = kullanılması gibi olası hataları işaretler. Oluşturulan mantığı güvenmeden önce her zaman test edin.

GitHub Yardımcı Pilotu Yorumlarınızdan veya çevreleyen koddan if, else-if ve iç içe koşulları otomatik olarak tamamlar. İlişkisel ve mantıksal ifadeler önerir ve eksik parantezleri ekleyebilir, ancak her öneriyi gözden geçirmeniz gerekir.

Bu yazıyı şu şekilde özetleyin: