NTP C# Dersi 5: Koşul (If ve Switch)

Merhaba arkadaşlar. Programlamada boolean ifadenin çok önemli olduğundan bahsetmiştik. Tabii ki buna bağlı olarak da koşul tanımlamanın da programlamanın temeli olduğundan da bahsettik. Bu derste de if ve switch komutlarından bahsedeceğiz.

If Komutu

Belirlenen koşulun boolean ifadesinin sonucuna göre programın kendine iki farklı yol çizdiği asıl koşul komutudur.
Kullanım şekli:
if(koşul talebi){
true dönünce yapılan işler}
else{
false dönünce yapılan işler}

Else

If komutu ile belirlenen koşulun boolean ifadesinin false döndürdüğü takdirde programın yapacağı işleri belirlemek içi kullanılan if komutunun bir parçasıdır. If komutu ile koşul tanımlarken if komutu koşulunun boolean ifadesinin true döndürdüğü takdirde yapılacaklar muhakkak belirlenmelidir. Else kullanmakta ise özgürüz, kullanmak şart değildir. Fakat if tanımlayıp koşulun boolean ifadesinin true döndürdüğünde yapılacakları belirlemeden else tanımlaması yapılamaz. Bu hatadan kaçmak için true döndüğünde yapılacakların yazıldığı blogu boş bırakıp yani aç kapa yapıp esleye atlayabiliriz. Fakat bu mantıksız bir harekettir.

 

// [-D] : Yılsonu notuna göre geçti, kaldı bilgisini veren program. Dönen bildirim kaldı ise kaç puan fark ile kaldığının bilgisini veren program.
using System;
namespace yG_CS_Proje1
{
    class Program
    {
        static void Main(string[] args)
        {
            string msj; // [01]
            Console.WriteLine("Yılsonu ortalamanızı yazınız."); // [02]
            int yilSonuNotu = Convert.ToInt16(Console.ReadLine()); // [03]
            if (yilSonuNotu > 49) // [04]
            { // [05]
                msj = "Sınıfı geçtiniz."; // [06]
            }
            else
            { // [07]
                int fark = 50 - yilSonuNotu; // [08]
                string sfark = Convert.ToString(fark); // [09]
                msj = "Sınıfı " + sfark + " fark ile geçemediniz."; // [10]
            }
            Console.WriteLine(msj); // [11]
            Console.ReadKey(); // [12]
        }
    }
}
// [01]: “msj” adında bir değişken tanımladık.
// [02]: Ekrana “Yılsonu ortalamanızı yazınız.” Metnini yazdırdık.
// [03]: Klavyeden girilen metni tam sayı(int)ya çevirip, “yilSonuNotu” adında bir int değişken tanımlar tanımlamaz, yükledik.
// [04]: If komutunun parametresinde bir boolean ifade tanımladık.
// [05]: Boolean ifade true döndürdüğü vakit yapılacak işleri tanımlayacağımız bloğu açtık.
// [06]: “msj” değişkenine “Sınıfı geçtiniz.” Metnini yükledik.
// [07]: Boolean ifade false döndürdüğü vakit yapılacak işleri tanımlamak için else komutunu kullandık.
// [08]: Yılsonu notunu sakladığımız “yilSonuNotu” ile sınıf geçme puanı arasındaki farkı hesapladık. Ardından farkı fark adında int değişken tanımlayıp yükledik.
// [09]: String türünde sfark adında bir değişken tanımladık. Ve “fark” değişkenindeki tam sayı türündeki değeri string veriye çevirerek string türü “sfark” değişkenine yükledik.
// [10]: “Sınıfı ” metni, “sfark” değişkenindeki metni ve ” fark ile geçemediniz.” Metnini birleştirerek “msj” değişkenine yükledik.
// [11]: “msj” değişkenindeki metni ekrana yazdırdık.
// [12]: Ekranın hemen kaybolmasını engelledik.

 
Switch Komutu

Switch komutu ilk bakışta bir koşul gibi görünmese de aslında bir koşul komutudur. Fakat if komutundan farklı olarak koşulun boolean ifadesinin kalıbı hep aynıdır. Yani if komutunda olduğu gibi karmaşık bir boolean ifadeler belirleyemiyoruz. Daha doğrusu boolean ifadeyi biz belirlemiyoruz. Kendi içerisinde entegre olmuş ve kalıplaşmış bir boolean ifade var.
Bu boolean ifadenin formülü: parametresindekideger == caselerdekideger

Switch komutu her case değeri için bu formülü uygular ve true döndürdüğü vakit true döndüren casein kodlarını çalıştırır. Hiç biri true döndürmez ise default komutunun kodlarını çalıştırır. Default komutu belirlenmesi şart değildir ve belirlenmemiş ise program switchi direkt atlar, görmez.

Break komutu switch komutunda kalıplaşmış bir komuttur ve her case komutundan sonra kullanılmalıdır. Break komutunun amacı boolean ifade true döndürdüğü vakit diğer caseleri kontrol etmekle vakit harcamayıp switchi sonlandırmaktır.

 

// [-E] : Klavyeden ismi yazılan içeceğin fiyatını veren program.
using System;
namespace yG_CS_Proje1
{
    class Program
    {
        static void Main(string[] args)
        {
            string msj; // [01]
            Console.WriteLine("Bir içecek ismi yazınız."); // [02]
            string siparis = Console.ReadLine(); // [03]
            switch (siparis) // [04]
            {
                case "çay": { msj = "1 TL"; break; } // [05]
                case "kahve": { msj = "5 TL"; break; } // [06]
                case "limonata": { msj = "2 TL"; break; } // [07]
                default: { msj = "Menümüzde mevcut değil!"; break; } // [08]
            }
            Console.WriteLine(msj); // [09]
            Console.ReadKey(); // [10]
        }
    }
}
// [01]: “msj” adında bir string değişken tanımladık.
// [02]: Ekrana “Bir içecek ismi yazınız.” Metnini yazdırdık.
// [03]: “siparis” adında bir string değişken tanımladık. Ardından klavyeden girilen metni “siparis” değişkenine yükledik.
// [04]: Switch konutunun parametresine “siparis” değişkenini atadık.
// [05]: switch komutunda “çay” olasılığını tanımladık. Ardından “çay” olasılığının yapacaklarını belirledik. “çay” olasılığının yapacağını “msj” değişkenine “1 TL” metnini yüklemek olduğunu belirledik. Ve switch komutunu kırdık(break)/sonlandırdık.
// [06]: switch komutunda “kahve” olasılığını tanımladık. Ardından “kahve” olasılığının yapacaklarını belirledik. “kahve” olasılığının yapacağını “msj” değişkenine “5 TL” metnini yüklemek olduğunu belirledik. Ve switch komutunu kırdık(break)/sonlandırdık.
// [07]: switch komutunda “limonata” olasılığını tanımladık. Ardından “limonata” olasılığının yapacaklarını belirledik. “limonata” olasılığının yapacağını “msj” değişkenine “2 TL” metnini yüklemek olduğunu belirledik. Ve switch komutunu kırdık(break)/sonlandırdık.
// [08]: “siparis” değişkenindeki verinin belirlenen seçenekler arasında olma olasılığını tanımladık. Ardından olasılığın yapacaklarını belirledik. Olasılığın yapacağını “msj” değişkenine “Menümüzde mevcut değil!” metnini yüklemek olduğunu belirledik.
// [09]: “msj” değişkenindeki metni ekrana yazdırdık.
// [10]: Ekranın hemen kaybolmasını engelledik.

 
Bir sonraki derste döngüleri işleyeceğiz. İyi çalışmalar.

Önerilen diğer yazılar:
NTP C# Dersi 4: Boolean İfade ve Koşul (Operatörü)

NTP C# Dersi 6: Döngü (While)

 

Yorum Yap

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

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>