PAYLAŞ

Ders 7. Akış kontrol mekanizmaları

Program yazarken çoğu zaman herşey ak ve kara gibi net olmaz, çoğu zaman çeşitli koşullara göre farklı komutlar çalıştırmamız gerekir. Benzer şekilde çoğu komutun da yalnızca bir kez çalıştırılması bizim için yeterli gelmez, belli koşulları sağladığı sürece sürekli çalıştırılmasını istediğimiz komutlar olabilir. İşte bu gibi durumlar için C#’ta akış kontrol mekanizmaları vardır. Aslında en basitinden en karmaşığına kadar bütün programlama dillerinde bu mekanizmalar mevcuttur ve programlama dillerinin en önemli ögelerinden birisidir.

if else

if else deyimi sayesinde belli bir koşul sağlandığında söz konusu komutlar çalıştırılır, o belli koşullar sağlanmadığında çalıştırılmaz ya da başka komutlar çalıştırılır. Kullanılışı şu şekildedir:

if(koşul)
 	komut1;
 else
 	komut2;

veya

if(koşul)
 {
 	komutlar1
 }
 else
 {
 	komutlar2
 }

Yukarıdaki örneklerde eğer koşul sağlanırsa 1. komutlar, sağlanmazsa 2. komutlar çalıştırılır. if veya else’in altında birden fazla komut varsa bu komutları parantez içine almak gerekir. if veya else’in altında tek komut varsa bu komutları parantez içine almak gerekmez. Örnek bir program:

 using System;
 class AkisKontrolMekanizmalari
 {
 	static void Main()
 	{
 		int a=5, b=7;
 		if(a<b)
 			Console.Write("a b'den küçük");
 		else
 			Console.Write("a b'den küçük değil");
 	}
 }

Başka bir örnek program:

 using System;
 class AkisKontrolMekanizmalari
 {
 	static void Main()
 	{
 		int a=5, b=7;
 		if(a<b)
 		{
 			Console.WriteLine("a b'den küçük");
 			Console.Write(a);
 		}
 		else
 		{
 			Console.WriteLine("a b'den küçük değil");
 			Console.Write(b);
 		}
 	}
 }

if else yapılarında else kısmının bulunması zorunlu değildir. Bu durumda sadece koşul sağlandığında bir şeyler yapılacak, koşul sağlanmadığında bir şeyler yapılmayacaktır. Örnek:

using System;
 class AkisKontrolMekanizmalari
 {
 	static void Main()
 	{
 		int a=5, b=7;
 		if(a<b)
 			Console.WriteLine("a b'den küçük");
 	}
 }

if else bloklarının aşağıdaki gibi kullanımı da mümkündür:

using System;
 class AkisKontrolMekanizmalari
 {
 	static void Main()
 	{
 		Console.Write("Cinsiyetinizi girin (e, k): ");
 		char cins=Convert.ToChar(Console.ReadLine());
 		if(cins=='e')
 			Console.Write("Erkeksiniz");
 		else if(cins=='k')
 			Console.Write("Kızsınız");
 		else
 			Console.Write("Lütfen cinsiyetinizi doğru giriniz!");
 	}
 }

Bu program kullanıcıdan cinsiyetini girmesi istemekte, eğer kullanıcının girdiği harf e ise ekrana Erkeksiniz yazmakta, eğer girdiği harf e değilse ise bu sefer kullanıcının girdiği harfi k mı değil mi diye incelemekte, eğer k girmişse ekrana Kızsınız yazmakta, bunların dışında bir harf girdiğinde de ekrana Lütfen cinsiyetinizi doğru giriniz! yazmaktadır. Bu şekilde bu bloklar daha da uzatılabilir. Yani else if satırının bir tane olması zorunlu değildir. Ancak tabii ki else satırının yalnızca bir tane olması gerekir. C# iç içe if else kullanılmasına izin verir:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace c7
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.Write("Lütfen Sayıyı Giriniz = ");
            int sayi = Convert.ToInt32(Console.ReadLine());
            int sonuc = sayi % 2;
            if (sonuc == 0)
            {
                Console.WriteLine("Girilen sayı çift");
            }
            else
            {
                Console.WriteLine("Sayı Tektir");
            }
        }
    }
}

Yukarıdaki yapıda klavyeden sayı girmemiz isteniyor. Mod yöntemi ile sayının kalanı varsa tek yoksa çift olarak sonuç veriyor.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace c8
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("notunuzu giriniz : ");
            int not = Convert.ToInt32( Console.ReadLine());
            if (not<20)
            {
                Console.WriteLine("FF");
            }
            else if (not<40)
            {
                Console.WriteLine("EE");
            }
            else if (not<50)
            {
                Console.WriteLine("DD");
            }
            else if (not<60)
            {
                Console.WriteLine("CC");
            }
            else if (not<75)
            {
                Console.WriteLine("BB");
            }
            else
            {
                Console.WriteLine("AA");
            }
        }
    }
}

Yukarıda ki örnekte girilen nota göre harf notu veren program yazdık.
Dikkat ederseniz hem if içinde if, hemde birden fazla koşul için alt alt (if else if else if) son durum için de else kunullanılmaktadır.

BİR CEVAP BIRAK