Karar Kontrol Deyimleri:

 

Karar kontrol deyimleri karar verme, kontrol yapma gibi işlemler için kullanılır. Programlamada çok kullanılan deyimlerdir.

 

Karar kontrol deyimleri ikiye ayrılır.

 

  • if else deyimi
  • switch deyimi

dir.

 

If Else Deyimi:

if (şart)
{
//Şart gerçekleşiyorsa yapılacaklar...
}
else
{
//Şart gerçekleşmiyorsa yapılacaklar...
}

Yapısı yukarıdaki gibidir.

 

Temel olarak mantığı; bir şart verilir, bu şart gerçekleşirse farklı işlemler, gerçekleşmezse de farklı işlemler çalıştırmayı sağlar.

Else deyimini kullanmak zorunlu değildir!

 

Not: Eğer gerçekleştirecek şartınız sadece 1 satır içeriyorsa süslü parantez gerekmez.

if (şart)
//Şart gerçekleşirse yapılacaklar...
else
//Şart gerçekleşmezse yapılacaklar...

Yukarıdaki gibi olabilir.

Console.Write("Yaşınızı giriniz: ");
int yas = Convert.ToInt32(Console.ReadLine());
if (yas >= 18)
Console.WriteLine("Ehliyet alabilirsiniz.");
else
Console.WriteLine("Ehliyet alamazsınız.");

Console.ReadKey();

Yukarıda, if else deyimi ile ilgili bir örnek yapılmıştır.

 

Bu örnekte kullanıcıdan yaş isteniyor. Eğer yaş 18'e eşit veya 18'den büyük ise ekrana "Ehliyet alabilirsiniz" mesajı veriliyor. 18'den küçük ise ekrana "Ehliyet alamazsınız" mesajı veriliyor.

Console.Write("C# programlama dilini geliştiren yazılım şirketini giriniz: ");
string cevap = Console.ReadLine();
if (cevap == "Microsoft")
{
Console.WriteLine("Tebrikler! Sorumuza doğru cevap verdiniz.");
}
else
{
Console.WriteLine("Maalesef yanlış cevap verdiniz.");
}
Console.ReadKey();

Yukarıda, if else deyimi ile ilgili başka bir örnek yapılmıştır.

 

Bu örnekte program, kullanıcıdan C# programlama dilini geliştiren yazılım şirketini girmesini istiyor. Eğer cevap Microsoft'a eşitse ekrana "Tebrikler! Sorumuza doğru cevap verdiniz." mesajı çıkartılıyor. Eğer cevap Microsoft'a eşit değilse ekrana "Maalesef yanlış cevap verdiniz." mesajı çıkartılıyor.

 

Ve Bağlacı:

 

Ve bağlacı; şartların hepsi gerçekleşirse, if komutunun çalışmasını sağlıyor.

if ((şart1) && (şart2))
{
//Hem şart1 hem de şart2 gerçekleşirse yapılacaklar...
}
else
{
//Şartlardan herhangi biri gerçekleşmiyorsa ya da hiçbiri gerçekleşmiyorsa yapılacaklar...
}

Yukarıdaki gibi bir yapısı vardır.

 

Veya Bağlacı:

 

Veya bağlacı; şartların herhangi biri gerçekleşirse, if komutunun çalışmasını sağlar.

if ((şart1) || (şart2))
{
//Şartları herhangi birisi gerçekleşirse yapılacaklar...
}
else
{
//Şartların hiçbirisi gerçekleşmezse yapılacaklar...
}

Yukarıdaki gibi bir yapısı vardır.

Console.Write("Yaşınızı giriniz: ");
int yas = Convert.ToInt32(Console.ReadLine());
Console.Write("Cinsiyetinizi giriniz(E-K): ");
char cinsiyet = Convert.ToChar(Console.ReadLine());

if ((yas >= 20) && (cinsiyet == 'E') || (cinsiyet == 'e'))
{
Console.WriteLine("Askere gidebilirsiniz...");
}
else
{
Console.WriteLine("Askere gidemezsiniz...");
}
Console.ReadKey();

Yukarıdaki örnekte, kullanıcıdan yaş ve cinsiyet isteniyor. Eğer yaş 20'ye eşit veya 20'den büyükse ve cinsiyet E'ye veya e'ye eşitse ekrana "Askere gidebilirsiniz..." yazdırıyor. Eğer yaş 20'den küçükse ve cinsiyet E'ye veya e'ye eşit değilse ekrana "Askere gidemezsiniz..." yazdırıyor.

 

Else if Deyimi:

 

Else if deyimi başka bir şartlandırma eklemek için kullanılır.

if (şart1)
{
//şart1 gerçekleşiyorsa yapılacak işlemler...
}
else if (şart2)
{
//şart2 gerçekleşiyorsa yapılacak işlemler...
}
else
{
//Hiçbir şart gerçekleşmiyorsa yapılacak işlemler...
}

Yukarıda, Else if deyiminin yapısı gösterilmiştir.

Console.Write("Notunuzu giriniz(0-100): ");
int not = Convert.ToInt32(Console.ReadLine());
if ((not >= 0) && (not < 25))
{
Console.WriteLine("Notunuz 0");
}
else if ((not >= 25) && (not < 50))
{
Console.WriteLine("Notunuz 1");
}
else if ((not >= 50) && (not < 60))
{
Console.WriteLine("Notunuz 2");
}
else if ((not >= 60) && (not < 70))
{
Console.WriteLine("Notunuz 3");
}
else if ((not >= 70) && (not < 85))
{
Console.WriteLine("Notunuz 4");
}
else if ((not >= 85) && (not <= 100))
{
Console.WriteLine("Notunuz 5");
}
else
{
Console.WriteLine("Lütfen 0-100 arasında bir sayı giriniz!");
}
Console.ReadKey();

Yukarıdaki örnekte, kullanıcıdan 0-100 arasında bir sayı isteniyor. Ve bunu 5 lik sisteme çevirip yazdırıyor.

 

İçiçe If Deyimi:

if (şart1)
{
	if (şart2)
	{
         şart2 gerçekleşirse yapılacak işlemler...
	}
        else
        {
         şart2 gerçekleşmezse yapılacak işlemler...
        }
}
else
{
şart1 gerçekleşmezse yapılacak işlemler...
}

Yukarıdaki gibi bir yapısı vardır.

Console.Write("Kullanıcı adınızı giriniz: ");
string kadi = Console.ReadLine();
if ((kadi == "Admin") || (kadi == "ADMİN") || (kadi == "admin"))
{
Console.Write("Şifrenizi giriniz: ");
string sifre = Console.ReadLine();
	if (sifre == "123456")
	{
	Console.WriteLine("Giriş başarılı!");
	}
	else
	{
	Console.WriteLine("Giriş başarısız!");
	}
}
else
{
Console.WriteLine("Giriş başarısız!");
}

Yukarıda, içiçe if ile ilgili bir örnek mevcuttur.



Switch deyimi:

 

Switch deyimi, if else deyiminden daha hızlı ve daha kısa bir halidir.

Ancak sadece eşitliğine(==) bakar. Yani "<", ">", "<=", ">=", "!=" gibi durumlarına bakmaz.

switch (ifade)
{
	case sabit1:
		//Yapılacak işlemler...
		break;
	case sabit2:
		//Yapılacak işlemler...
		break;
	case sabit3:
		//Yapılacak işlemler...
		break;



	default:
		//Yapılacak işlemler...
		break;
}

Yapısı yukarıdaki gibidir.

 

default, tıpkı else gibidir. Eğer değer hiç bir sabite eşit değilse, default'un altındaki komutlar çalışacaktır.

Console.Write("1-12 arasında bir sayı giriniz: ");
int ay = Convert.ToInt32(Console.ReadLine());
switch(ay)
{
	case 1:
	Console.WriteLine("Ocak");
	break;
	case 2:
	Console.WriteLine("Şubat");
	break;
	case 3:
	Console.WriteLine("Mart");
	break;
	case 4:
	Console.WriteLine("Nisan");
	break;
	case 5:
	Console.WriteLine("Mayıs");
	break;
	case 6:
	Console.WriteLine("Haziran");
	break;
	case 7:
	Console.WriteLine("Temmuz");
	break;
	case 8:
	Console.WriteLine("Ağustos");
	break;
	case 9:
	Console.WriteLine("Eylül");
	break;
	case 10:
	Console.WriteLine("Ekim");
	break;
	case 11:
	Console.WriteLine("Kasım");
	break;
	case 12:
	Console.WriteLine("Aralık");
	break;
	default:
	Console.WriteLine("Lütfen 1-12 arasında bir sayı giriniz!");
	break;	
}

Yukarıdaki örnekte, kullanıcıdan 1-12 arasında sayı isteniyor. Bu sayının karşılığı olan ay ekrana yazdırılıyor. Eğer sayı 1-12 arasında değilse ekrana "Lütfen 1-12 arasında bir sayı giriniz!" mesajı çıkartılıyor.