21 Oca 2016

C#'da Koşul İfadeleri

? OPERATÖRÜ
? operatöründen sonraki ilk kısım koşul doğru olduğunda çalışacak kısımdır. 2. kısım ise koşul yanlış olduğunda çalışır. Hiçbir zaman ifadenin true ve false bölümleri aynı anda çalışmaz. İfade ya doğru ya yanlıştır.
string name = "Gökalp";
name = name.Length == 6 ? name + "Soyad" : name + "Soyad";
Console.WriteLine(name);

IF-ELSE-ELSE IF
if (koşul) ifade; ifade kısmı ancak koşul doğru ise çalışır. Aşağıdaki kodda koşul doğru olduğu için ifade çalışacaktır.
string name = "Gökalp";
if (name.Length == 6) Console.WriteLine("adım gökalp");
Eğer koşul kısmı yanlışsa ve bu durumda çalışmasını istediğimiz başka bir ifade varsa bunu else ile kodlayabiliyoruz. Kullanım kalıbı:
if (koşul) 
     TrueIfade; 
else 
      FalseIfade;

Aşağıda “Gökalp” ismi 7 karakter uzunluğunda olmadığı için if’in yanındaki ifade çalışmaz, else’in yanındaki ifade çalışır.
string name = "Gökalp";
if (name.Length == 7) 
        Console.WriteLine("adım gökalp"); 
else 
Console.WriteLine("adımdaki harf sayısı 7 değil");
if ve else ifadeleri için scope { } açılabilir. Scope açtıktan sonra istediğimiz kadar satır kullanabiliriz. Açmazsak if’in içine tek satır kod yazma hakkımız vardır.
Akışı kontrol ederken iç içe if kontrolleri de yapmak mümkündür.
string name1 = "ali";
string name2 = "bob";

if (name1.Length == name2.Length && name1.IndexOf('l') == name2.IndexOf('o'))
{
Console.WriteLine("Aradığınız kriterler uygundur.");

if (name1.ToUpper() == "ALİ")
{
Console.WriteLine("Türkçe karakter seti kullanıyorsunuz");
}
else if (name1.ToUpper() = "ALI") //eğer if ifadesi geçerli değilse else if de ifadeleri kontrol edebilir.
{
Console.WriteLine("Türkçe karakter seti kullanmıyorsunuz");
}
else
{
Console.WriteLine("Değişik bir karakter seti!");
}
}
else if çalışma mantığı
if(1.koşul)
            1.ifade;
else if (2.koşul)
            2.ifade;
            .
            .
            .
else if(n’inci koşul)
            n’inci ifade;
else
            else ifadesi(üstteki koşulların hiçbiri uygun değilse)
if ve else if ifadeleri mutlaka birlikte kullanılır. Else if ile akış kontrolüne başlanamaz. Else ifadesini kullanmak zorunlu değildir. Negatif durumda herhangi bir şey çalıştırmak istemeyebiliriz. Else if ler içinde bir koşul sağlandığında diğer else if’ler içindeki koşullara bakılmaz. Sadece ilk koşulu sağlayan ifadenin scope’u çalışır.

SWITCH-CASE
Switch ifadesi satırında test edilecek ifade, bu ifadenin karşılığı her case satırında alabileceği değerler şeklinde bulunur. default ifadesi ise, else ifadesi gibi hiçbir test değerine uymayan durumları yakalamak için kullanılır. Zorunlu değildir. Kullanım kalıbı aşağıdaki gibidir:
switch(test edilecek ifade)
{
    case değer1;
        ifade 1;
        break;
    case değer2;
        ifade 2;
        break;
    .
    .
    .
    default:
        ifade n;
break;
}

Switch, if-else if-else yapısından bir noktada farklılık gösterir. Burada bir scope çalıştıktan sonra diğer scope’lar kontrol edilmeye devam eder. Yukarıda gördüğümüz break; ifadeleri bir case kontrolünden sonra testin doğruluğunu sağlayıp içindeki ifade çalıştıktan sonra switch’ten çıkmak için kullanılır. Eğer break kullanmazsak teste ilk uyan case ifadesi çalışır, sonrasında switch’den çıkılmaz ve bunun altındaki diğer case ifadedeleri çalışmaya devam eder.

Switch-Case yapısında herhangi bir Case'den sonra : yanına hiçbir kod yazılmamışsa o durum sağlanırsa altındaki Case'in kod satırı çalışacaktır.

Hiç yorum yok:

Yorum Gönder