C# Dersleri : Kontrol Yapıları

Bu dersimizde C# içerisinde yer alan kontrol yapılarını göreceğiz. Kontrol yapıları kendi içerisinde if yapısı, switch case yapısı ve pattern matching olmak üzere üçe ayrılır. İşte C# içerisinde kullanılan kontrol yapıları.

If Yapısı

If komutu, belirli bir şartın gerçekleşmesi ya da tam tersi durumda belirtilmiş olan kodların çalıştırılmasını sağlayan yapı türüdür. Kullanımı gayet basittir. Şimdi küçük bir örnek yapalım. Bunun için ilk olarak bir konsol uygulaması oluşturun (Konsol uygulaması oluşturmakta zorluk çekiyorsanız) Ardından aşağıdaki kodları programa dahil edin.

Console.Write("Öğrencinin Notunu Giriniz");
int not = Convert.ToInt32(Console.ReadLine());
if (not >= 45)
{
Console.WriteLine("Öğrenci geçmiştir");
}
else
{
Console.WriteLine("Öğrenci kalmıştır");
}
Console.ReadLine();

Örneğimizi çalıştırdığımızda ekranda Öğrencinin Notunu Giriniz yazacaktır ve program sizden bir not değeri girmenizi isteyecektir. Daha sonra program girmiş olduğumuz not değerinin 45’den büyük olup olmadığını tanımlamış olduğumuz if – else yapısında kontrol edecektir. Eğer 45’den büyükse ekranda Öğrenci geçmiştir yazacaktır. Eğer 45’den küçükse ekranda Öğrenci kalmıştır yazacaktır.

Görüldüğü gibi if yapısını kullanmak oldukça basit. İlk olarak if yazıp () içerisine gerçekleşmesini istediğinizi şartları giriyorsunuz. Daha sonra {} içerisinde gerçekleşmesini istediğiniz işlemleri belirtiyorsunuz.

Burada önemli bir kural var. O da şu. {} kullanmak zorunludur. Eğer kullanılmazsa program hata verecektir. Lakin bunun bir istisnası vardır. O da sadece tek bir satırlık işlem yapacaksanız. Yani;

if (not >= 45)
    Console.WriteLine("Öğrenci geçmiştir");

gibi

Else Yapısı

If yapısıyla birlikte kullanılır. Gerçekleşmesi istenmeyen ifadeleri belirtmek amacıyla kullanılır. Örneğin yukarıdaki örnekte biz kullanıcıdan aldığımız not değerinin 45’den küçük olması durumunda else yapısını kullanarak kullanıcının düşük not aldığını belirttik.

Else If Yapısı

Birden fazla şartın olduğu durumlarda kullanılır. Küçük bir örnekle ne demek istediğimi anlatayım. Bir tane form uygulaması oluşturun ve içerisine buton ekleyin. Daha sonra eklemiş olduğunuz o butona çift tıklayıp aşağıdaki kodları ekleyin.

int not;
not = Convert.ToInt32(Interaction.InputBox("Notu Girin"));
if (not < 25)
    MessageBox.Show("Not : 0");
else if (not < 45)
    MessageBox.Show("Not : 1");
else if (not < 55)
    MessageBox.Show("Not : 2");
else if (not < 70)
    MessageBox.Show("Not : 3");
else if (not < 85)
    MessageBox.Show("Not : 4");
else if (not < 100)
    MessageBox.Show("Not : 5");
else
    MessageBox.Show("Girilen Değer Yanlış");

Yukarıdaki örneği çalıştırdığımızda ve butona tıkladığımızda karşımıza bir mesaj kutusu gözükecektir. Bu mesaj kutusuna girmiş olduğumuz değere göre ekranda öğrencinin notu gözükecektir.

Görüldüğü gibi birden fazla if yapısını kullanarak da kontrol sağlamak mümkün. Biz bu örneğimizde sizlere else if ile yapısının nasıl kullanıldığını gösterdik.

Switch Case Yapısı

Switch Case yapısı verilmiş olan bir değişkenin almış olduğu değer ya da değer aralığına göre seçim yapmak için kullanılır. Kullanımını aşağıdaki örnek ile açıklayalım. Bunun için bir form uygulaması oluşturun ve içerisine bir adet buton ekleyin ve aşağıdaki kodları ekleyin.

int not;
not = Convert.ToInt32(Interaction.InputBox("Öğrencinin Notunu Giriniz : "));
switch (not)
{
case 0:
{
MessageBox.Show("Öğrenci Kaldı...");
break;
}
case 1:
{
MessageBox.Show("Öğrenci Kaldı...");
break;
}
case 2:
{
MessageBox.Show("Öğrenci Kaldı...");
break;
}
case 3:
{
MessageBox.Show("Öğrenci Geçti...");
break;
}
case 4:
{
MessageBox.Show("Öğrenci Geçti...");
break;
}
case 5:
{
MessageBox.Show("Öğrenci Geçti...");
break;
}
default:
{
MessageBox.Show("Yanlış Bir Değer Girdiniz!!!");
break;
}

Örneğimizde girilen nota karşılık sonuç mesaj şeklinde ekranda yazılacaktır. Öğrencinin almış olduğu notun hangi aralıklarda olacağını case yapılarını kullanarak belirleriz. Girilen değerler haricinde yapılmasını istediğimiz işlemleri default içerisinde belirtiriz.

Aynı işlemleri case blokları arasında yönlendirme yapmak için go to case metodu kullanılabilir.

int not;
not = Convert.ToInt32(Interaction.InputBox("Öğrencinin Notunu Giriniz : "));
switch (not)
{
case 0: MessageBox.Show("Öğrenci Kaldı..."); break;
case 1: goto case 0;
case 2: MessageBox.Show("Öğrenci Geçti..."); break;
case 3: goto case 2;
default:
{
MessageBox.Show("Yanlış Bir Değer Girdiniz!!!");
break;
}

Pattern Matching Yapısı

C# 7.0 ile gelen pattern matching ile if ve switch yapıları daha etkili bir biçimde kullanılmaya başlandı. Type pattern, constant pattern ve var pattern gibi kullanımları mevcuttur.

Type Pattern

Bir değişkenin bir tür ile karşılaştırılarak sonucun olumlu olması durumunda değişkenin değerinin bir başka değişkene aktarılması şeklinde kullanılır.

if (this.Controls[0] is Button button)
{
button.BackColor = Color.Red;
button.Text = "Buton";
}
else if (this.Controls[0] is TextBox text)
{
text.BackColor = Color.White;
text.Text = "Text";
}

Kodumuzda yer alan

this.Controls[0] is TextBox text

0 indeks numaralı kontrolün TextBox olup olmadığını kontrol ettik. Sonuç olumlu ise text isimli değişkene bu kontrolü atadık.

Constant Pattern

Karşılaştırma işleminin sabit ile yapılmasıdır.

int rakam = 5;
if (rakam is int i)
  Console.WriteLine(i+2);
else if (rakam is null)
  Console.WriteLine("Boş");
else
  Console.WriteLine("Sayı int değildir");

Örneğimizde tanımlamış olduğumuz değişkeni sabit ile karşılaştırdık.

Var Pattern

Değişkenin değeri var ile elde edilerek, değeri bir başka değişkene aktarılmasıdır.

string metin = "metin";
if (metin is var str)
   Console.WriteLine(str);

Yukarıdaki örneğimizde metin değişkeninin değerini var ile elde ederek str değişkenine aktardık. Ve str değişkeninin içerisine yazdırdık.

Pattern Matching ve Switch Case

Pattern matching ve switch case yapısının etkileşimini inceleyelim.

object deger = null;
Console.WriteLine ("Notu Girin:");
deger = Convert.ToInt32 (Console.ReadLine());
switch (deger)
{
case int a when a < = 0:
   Console.WriteLine("Lütfen 0'dan büyük bir değer girin:");
   break;
case int b when b <50:
   Console.WriteLine("Öğrenci Kaldı");
   break;
case int c when c > = 50:
   Console.WriteLine("Öğrenci Geçti");
   break;
}
Console.ReadLine();

Örneğimizde değer isimli değişkenin içeriğine göre seçim yaparak, değişkenin türünü karşılaştırarak ve eğer değişkenin türü int ise içeriği başka bir değişkene aktararak sonucu ekrana yazdırdık.

Bugün sizlere bu dersimizde C# içerisinde kullanılan kontrol yapılarından bahsettik. Anlamadığınız bir şey olursa bizimle buradan iletişime geçebilirsiniz.

Yayınlamış olduğumuz C# derslerine buradan ulaşabilirsiniz.

Visual Studio’yu buradan indirebilirsiniz.

Yazılım derslerini buradan takip edebilirsiniz.

Reklamlar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir