Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
   
Konu: C# - Koşul İfadeleri - if Deyimi {24}
Hera
*
avatar
Yüzbaşı
Durum: Çevrimdışı
Seviye Puanı: 9
Yaşam Puanı: 42 / 201
Deneyim: 5 / 100
Rep Sayısı: 27
Mesaj Sayısı: 101
Üyelik Tarihi: 13.04.2019
     
Yorum: #1
C# - Koşul İfadeleri - if Deyimi {24}
25.05.2019 03:35
Koşul İfadeleri

Program yazarken bazı noktalarda belirli koşullar altında gerçekleşmesini istediğimiz durumlar olabilir. Şu ana kadar anlattığım bilgilerle koşullara bağlı olarak program geliştirmeniz mümkün değildir. Ancak bu bölümde göstereceğim if-else ve switch deyimleri ile kapsamlı programlar geliştirebileceksiniz. C#dilinde koşula bağlı olarak bir kod bloğunu çalıştırmaya yarayan iki deyim vardır bunlar;
  • if deyimi.
  • switch deyimidir.

Önemli Not (Hera) Nickli Kullanıcıdan Alıntı:İfade ile deyimi arasındaki farkı iyi anlamak gerekir. İfadeler değişkenler ve operatörlerin oluşturduğu kombinasyonlara denir. Deyim sie bir ifade ile satır sonlandırıcı karakter olan noktalı virgül karakterinden oluşur. Örneğin;

a = (a << b) + c
Bir ifade iken,
a = (a << b) + c;
bir deyimdir.

if Deyimi

if deyimi bir programın akışını kontrol etmek için kullanılır; C# dilinin en önemli yapılarından biridir. C# dilinde en genel if deyimi aşağıdaki gibi yazılır;

if (Koşul)
deyim1
else
deyim2


Eğer daha önce herhangi bir programlama dili ile uğraştıysanız yukarıdaki yazım size pek yabancı gelmeyecektir.

Şimdi if deyiminin çalışma prensibini açıklayayım. Programın akışı if deyiminin olduğu satıra geldiğinde if parantezi içerisindeki koşul ifadesi çalıştırılır. Bu koşul ifadesi mutlaka true ya da false değeri üretmelidir. Aksi halde program derlenemez. Koşul ifadesinin ürettiği değer true ise deyim1 çalıştırılır, üretilen değer false ise deyim2 çalıştırılır. Örneğin aşağıdaki programda koşul ifadesi sağlandığı için 1. deyim çalışacak.
Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            int a = 5, b = 7;
            if (a < b)
                Console.WriteLine("1. Deyim");
            else
                Console.WriteLine("2. Deyim");
        }
    }
}

Yukarıdaki program çalıştırıldığında ekrana "1. Deyim" yazılacaktır.
Bu şekilde if deyiminin akış diyagramını aşağıdaki gibi gösterebilirim;


Eğer 2. deyimden sonra da herhangi bir deyim olsaydı koşuldan bağımsız olarak bu deyimler çalıştırılacaktı. Çünkü if deyiminin bu şekildeki kullanımında koşula bağlı olarak sadece bir deyim çalıştırabiliriz. Peki eğer bir koşul altında birden fazla deyim çalıştırmak istersek ne yapmalıyız?
Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            int a = 5, b = 7;
            if (a < b)
            {
                a++;
                Console.WriteLine("1. Deyim");
            }
            else
            {
                b--;
                Console.WriteLine("2. Deyim");
            }
        }
    }
}


Bazen if deyimlerinin else kısmı olmayabilir. Yani bir koşulun sadece doğru gerçekleşmesi durumunda bir ya da daha fazla deyimi çalıştırmak isteyebiliriz. Bu durumda if deyiminin yapısı aşağıdaki iki şekilde olabilir;
Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            int a = 5, b = 7;
            if (a < b)
            {
                a++;
                Console.WriteLine("1. Deyim");
            }
// Ya da
            if (a < b)
                Console.WriteLine("2. Deyim");
        }
    }
}

Yukarıdaki iki if deyiminde eğer koşulu yalnışsa herhangi bir işlem yapılmadan program akışı if bloğunun dışına gelir. İkinci kullanımda ise eğer koşulu doğru ise if parantezinden sonraki ilk deyim çalıştırılır; Koşul yanlışsa programın geri kalan kısmına geçilir.
if deyiminin diğer bir kullanımı da çoklu koşul seçme durumlarında görülür. Eğer programımızın bir kaç koşula göre yönlendireceksek else if bloklarını kullanırız. else-if bloklarının kullanımını şöyle gösterebilirim;
Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            int not;
            Console.Write("Notunuzu giriniz : ");
            not = Convert.ToInt32(Console.ReadLine());

            if (not < 0 || not > 100)
                Console.WriteLine("Yalnış not girdiniz!");
            else if (not > 90)
                Console.WriteLine("Notunuz : A");
            else if (not > 80)
                Console.WriteLine("Notunuz : B");
            else if (not > 70)
                Console.WriteLine("Notunuz : C");
            else if (not >= 50)
                Console.WriteLine("Notunuz : D");
            else
                Console.WriteLine("Dersi geçemediniz!");
        }
    }
}

Yukarıdaki else if bloklarında koşul doğru olarak üretildiği taktirde hemen altındaki deyim çalıştırılır ve if bloğunun sonuna gelinir. Örneğin not olarak 95 girildiğinde birinci koşul yanlış değer türetir; çünkü 95 sayısı 0'den küçük olmadığı gibi 100'den de büyük değildir. Yanlış değer üretilince bu sefer akış else if deyimine gelir. 95 > 90 olduğu için true değeri üretilir ve ekrana "Notunuz : A" yazılır. Deyimin icrası bittikten sonra ikinci else if bloğuna geçilmez. Eğer böyle olsaydı ikinci else if parantezindeki koşul true değeri türetirdi (95 > 80) ve ekrana iki not birden yazardı.

Önemli Not (Hera) Nickli Kullanıcıdan Alıntı:C ve C++ programcıları if deyimleri yazarken koşulun ürettiği değerin sıfır ya da sıfır dışı bir değer olmasını düşünürlerdi. Ancak C#'ta bu tamamen yasaklanmıştır. Koşul ifadeleri mutlaka bool türünden bir sabit üretmektedir.


İç içe if deyimleri kullanarak karmaşık yapıdaki seçme işlemlerini yapabiliriz. Örneğin, aşağıdaki yapı tamamen geçerlidir;
Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            if (kosul1)
            {
                if (kosul2)
                    deyim1;
                else
                {
                    deyim2;
                    deyim3;
                }
            }
            else
                deyim4;
        }
    }
}

İç içe (nested) geçmiş if blokları genellikle çok karmaşık olduğu için parantezleri doğru yerlerde kullanmalıyız ki, kodlarımız inceleyenler herhangi parantezin hangi if bloğuna ait olduğunu kolaylıkla görsün.
Şimdi if deyiminin kullamına son bir örnek verip konuyu bitireceğim.
Aşağıdaki programı kullanıcıdan iki sayı alınıp seçilen aritmetik işleme göre sonuç ekrana yazdırılacaktır.

Önemli Not (Hera) Nickli Kullanıcıdan Alıntı:Bölme işlemi seçilip eğer ikinci sayı 0 olarak girilirse uyarı verilecektir. Çünkü bir sayının sıfıra bölünmesi anlamsızdır.


Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            int sayi1, sayi2;
            string Islem;

            Console.Write("Birinci sayıyı giriniz : ");
            sayi1 = Convert.ToInt32(Console.ReadLine());

            Console.Write("İkinci sayıyı giriniz : ");
            sayi2 = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("\nToplama ---> t");
            Console.WriteLine("Çıkarma ---> c");
            Console.WriteLine("Çarpma ---> m");
            Console.WriteLine("Bölme ---> b");
            Console.Write("İşleminizi seçiniz : ");
            Islem = Console.ReadLine();

            if (Islem == "b")
            {
                if (sayi2 != 0)
                {
                    float sonuc = (float)sayi1 / (float)sayi2;
                    Console.WriteLine("Sonuç : {0}", sonuc);
                }
                else
                    Console.WriteLine("Bölen sıfır olamaz!");
            }
            else if (Islem == "t")
                Console.WriteLine("Sonuç : {0}", sayi1 + sayi2);
            else if (Islem == "m")
                Console.WriteLine("Sonuç {0}", sayi1 * sayi2);
            else
                Console.WriteLine("Sonuç : {0}", sayi1 - sayi2);          
        }
    }
}


(Bu konu en son: 25.05.2019 Tarihinde, Saat: 03:36 düzenlenmiştir. Düzenleyen: Hera.)
Alinti
DARKDAYS
*
avatar
Albay
Durum: Çevrimdışı
Seviye Puanı: 30
Yaşam Puanı: 724 / 731
Deneyim: 25 / 100
Rep Sayısı: 459
Mesaj Sayısı: 1206
Üyelik Tarihi: 08.04.2017
      
Yorum: #2
RE: C# - Koşul İfadeleri - if Deyimi {24}
25.05.2019 07:34
Teşekkürler, Emeğine Sağlık Smile

Parmak uçlarına bak, parmak izlerini görüceksin ve o izlerden ne önce, ne şimdi, ne daha sonra olucak.
Dünya üzerinde 150 Milyar insan yaşamış, biri o parmak izlerine sahip değil !

MİRROR
Alinti
Dessy
*
avatar
Yarbay
Durum: Çevrimdışı
Seviye Puanı: 22
Yaşam Puanı: 181 / 532
Deneyim: 30 / 100
Rep Sayısı: 113
Mesaj Sayısı: 592
Üyelik Tarihi: 20.11.2015
     
Yorum: #3
RE: C# - Koşul İfadeleri - if Deyimi {24}
25.05.2019 13:09
Teşekkürler, Emeğine Sağlık Smile

İnstagram Sınırsız Hesap > Git
Youtube Sınırsız Hesap > Git
Sosyal Medyada Sınırsız Hesap Açma p2 Yakında.
Alinti



1 Ziyaretçi