if Deyimi

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

C#’ta uygulama akışlarını kontrol etmek için, genel olarak tercih edilen iki adet deyim vardır. Bunlardan biri if, diğeri ise switch ifadesidir. if, uygulamada bir koşulun kontrolünü sağlayan deyimdir. Genel kullanımı aşağıdaki gibidir:

if (koşul)

{

Koşul doğru ise yapılacak işler;

}

else

{

Koşul yanlış ise Yapılacak işler;

}

İlişkisel ve mantıksal operatörler kullanılarak, bool değerler döndüren koşullar oluşturulabilir ve kontrol sağlanabilir. if deyimi koşul doğru ise kendi altındaki kod bloğunu, doğru değilse else anahtar sözcüğünün altındaki kod bloğunu çalıştırır. if veya else deyiminden sonra sadece tek satır yazılacaksa { işaretine gerek yoktur. Aslında bu kural, C#’taki birçok deyim için geçerlidir.

if (koşul)

      doğru ise yapılacak işler

else

      yanlış ise Yapılacak işler;

Aşağıda, kullanıcının girdiği parolayı kontrol eden örnek bir konsol uygulaması görülüyor:

string parola = Console.ReadLine();

if(parola == "1234")
{
    Console.WriteLine("Parola doğru");
}
else
{
    Console.WriteLine("Girilen parola doğru değil");
}

Örnek incelendiğinde, Console.ReadLine() metodu ile ekrandaki yazı string olarak okunur ve değer alınarak string bir değişkene atanır. 3. satırdaki if deyimi içinde, parola değişkenine atanan verinin == operatörü ile kontrol edildiği görülür. Kullanıcın girdiği değer "1234" değerine eşitse deyim true (doğru) değerini döndürecek ve ilk kapsam çalışacaktır. Eşit değilse, o zaman false (yanlış) değerini döndürecek ve else deyiminden sonraki kapsam çalışacaktır. Her iki kapsamda da Console.WriteLine(); ile içerisindeki metin ekrana yazdırılır.

Şimdi, örneği biraz geliştirelim. Kullanıcıdan parola dışında bir de kullanıcı adı bilgisi isteyelim ve her ikisi de doğru ise işlem başarılı olsun:

string kullaniciAdi = Console.ReadLine();
string parola = Console.ReadLine();

if(kullaniciAdi == "admin" && parola == "1234")
{
    Console.WriteLine("K. Adı ve Parola doğru");
}
else
{
    Console.WriteLine("Girilen K.Adı veya Parola doğru değil");
}

Burada if deyiminde VE (&&) operatörü ile iki koşulun da true (doğru) olması durumunda giriş doğrulanır. Fakat durumun false (yanlış) olmasının hangi koşuldan kaynaklandığı bilinemez. Bu durum, iç içe if deyimleri kullanılarak çözülebilir.

string kullaniciAdi = Console.ReadLine();
string parola = Console.ReadLine();
 
if (kullaniciAdi == "admin")
{
    if (parola == "123456")
    {
        Console.WriteLine("K. Adı ve Parola doğru");
    }
    else
    {
        Console.WriteLine("Girilen Parola doğru değil");
    }
}
else
{
    Console.WriteLine("Girilen K.Adı doğru değil");
}

Uygulama geliştirirken, zaman zaman arka arkaya birçok if deyiminin kullanılması gerekebilir.

Aşağıda Console.ReadLine() metodu string bir değer döndürdüğünden dolayı bunu byte olarak oluşturduğumuz bir değişkene atamamız için bir dönüştürme işlemi yapılmaktadır. Convert.ToByte metodu, içerisine aldığı değerleri dönüştürüp geriye byte tipinde bir değer döndürmek için kullanılır.

byte ay = Convert.ToByte(Console.ReadLine());

byte olarak alınan değer bir if sorgusuna sokularak ekrana yazılmış olan ayın hangisi olduğu sorgulanmaktadır. Aşağıda yapılan işlemdeyse ay sayısı belirtilen sorgu satırına geldiğinde Console.WriteLine metodu ile belirtilen ilgili string metin ekrana yazdırılıcaktır.

byte ay = Convert.ToByte(Console.ReadLine());
 
if (ay == 1)
Console.WriteLine("Ocak");
else if (ay == 2)
Console.WriteLine("Şubat");
else if (ay == 3)
Console.WriteLine("Mart");
else if (ay == 4)
Console.WriteLine("Nisan");
else if (ay == 5)
Console.WriteLine("Mayıs");
else if (ay == 6)
Console.WriteLine("Haziran");
else if (ay == 7)
Console.WriteLine("Temmuz");
else if (ay == 8)
Console.WriteLine("Ağustos");
else if (ay == 9)
Console.WriteLine("Eylül");
else if (ay == 10)
Console.WriteLine("Ekim");
else if (ay == 11)
Console.WriteLine("Kasım");
else if (ay == 12)
Console.WriteLine("Aralık");
else
Console.WriteLine("1-12 arası sayı girmelisiniz");

Örnekte, 1 ile 12 arasında girilen sayıya göre kullanıcıya ay bilgisi döndürülür. Burada arka arkaya 12 adet if yerine bir tek if deyimi kullanılır ve devamında, else if deyimleri ile devam edilir. Girilen değer 1 ile 12 arasında değilse, en sondaki else deyiminde bir uyarı mesajı görüntülenir. Burada kullanılan else if deyimi, koşulun doğru olması durumunda, kodun geri kalan else if deyimlerini kontrol etmesini engeller ve akışın en sondaki else deyiminin kapsamından sonra devam etmesini sağlar.