Son Haberler
Anasayfa / Yazılım / C# / Csharp Karar Yapıları Örneği

Csharp Karar Yapıları Örneği

Csharpta karar yapıları ile ilgili bir kaç örneği ele alalım. Burada ele alacağımız karar yapısı if-else yapıları olacak. İf-else yapılarında bilindiği üzere bir şart sağlanırsa, istenilenleri yap diye programlamamızda komutlarımızı verebiliyoruz.

Klavyeden girilen sayının tek mi, çift mi olduğunu bulan program:

Burada teorik bilgi vermeden ziyade daha çok örneklerle konuyu ele alalım. İlk örneğimiz klavyeden textbox’a girilen sayının tek mi çift mi olduğunu bulan program olsun. Uygulamamıza bir adet textbox ve bir buton ekliyorum. Formumu çalıştırdığımda klavyeden textboxa sayı girilecek. Butona basıldığında da tek ve çift olma durumunu messagebox ile kullanıcıya bilgi şeklinde veriyorum.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Değişken tanımlama ve veriyi alma işlemim
            int sayi = Convert.ToInt32(textBox1.Text);

            //Girilen sayının çift mi tek mi olduğunun kontrolü mod alma işlemi ile yapılıyor. 
            if (sayi % 2 == 0)
            {
                MessageBox.Show("Girilen sayı çifttir");

            }
            else
            {
                MessageBox.Show("Girilen sayı tektir");
            }
        }
    }
}

Burada matematiksel işlemim aslında mod alma işlemi. Mod alma işlemini Csharpta yüzde ‘%’ sembolü ile yapıyoruz. Bir sayının 2’ye bölümünden kalanı bulmak için de mod uygulaması yapıyoruz. Dolayısı ile söz dizimim şöyle oluyor;

sayi % 2 == 0

Sayının 2’ye bölümünden kalan 0’a eşit mi? Eğer eşit ise sayımız çifttir, değil ise sayımız tektir. İşlem bu kadar basit.

Bir sonraki örneğimize bakalım. Bu örnekte de aslında amacım iki durumun kontrolü. bunu yapabilmek için if-else yapısında ve anlamına gelen ‘&&’ operatörünü kullanmam gerek. Amacım şu, klavyeden girilen sayının hem 20’den büyük olma hem de çift olma durumunu kontrol ediyorum. Yani iki şartın doğruluğuna bakacağım.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Değişkenimi tanımlıyorum ve verileri convert ediyorum.
            int sayi = Convert.ToInt32(textBox1.Text);

            //mod alma işlemim ve sayının 20'den büyük olma durumunu kontrol etme durumum.
            if (sayi % 2 == 0 && sayi >20)
            {
                MessageBox.Show("Girilen sayı hem 20'den büyük hem de çifttir");
            }
            else
            {
                MessageBox.Show("Girilen sayı 20'den büyük değil veya çift değildir");
            }
        }
    }
}

Bir de veya operatörü ‘||’ ile işlem yapalım. Bu sefer de sayının çift olup olmadığının kontrolü veya 20’den büyük olup olmama durumunu kontrol edelim.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //değişkenlerimi tanımladım ve veri convert işlemi mi yaptım.
            int sayi = Convert.ToInt32(textBox1.Text);

            //Mod alma işlemim veya 20'den büyük olup olmama kontrolüm.
            if (sayi % 2 == 0 || sayi > 20)
            {
                MessageBox.Show("Sayı çift veya 20'den büyük");
            }
            else
            {
                MessageBox.Show("Sayı 20'den küçük veya çift değil");
            }
        }
    }
}

Biraz daha uygulama tarzında bir örnekleme yapalım. Klavyeden 3 ders notu girilen öğrencinin, ortalamasına göre Geçti veya Kaldı şeklinde mesaj veren kodları yazalım. Geçme ortalaması 50 ve üstü olsun.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form4 : Form
    {
        public Form4()
        {
            InitializeComponent();
        }

        private void btnHesapla_Click(object sender, EventArgs e)
        {
            //Değşkenlerimi tanımladım. Double olarak tanımlama yaptım çünkü ortalmam ondalık bir sayı olabilir.
            double sinav1, sinav2, sinav3, ortalama;
            string durum;

            //Değişkenlerimin dönüşüm işlemleri
            sinav1 = Convert.ToDouble(txtSinav1.Text);
            sinav2 = Convert.ToDouble(txtSinav2.Text);
            sinav3 = Convert.ToDouble(txtSinav3.Text);

            //ortalama hesabım
            ortalama = (sinav1 + sinav2 + sinav3) / 3;

            //Ortalama 50 ve üstü ise şartım
            if (ortalama >= 50)
            {
                durum = "Geçti";
            }

            //Ortalama 50 altında ise şartım.
            else
            {
                durum = "Kaldı";
            }

            lblOrtalama.Text = ortalama.ToString("0.00");
            lblDurum.Text = durum;
        }
    }
}

Biraz daha kompleks bir örnekle sonlandıralım. Bu örneğimizde klavyeden ürün adedi girilen bir ürün için indirim tutarı hesaplama olsun. Kurgumuz şöyle. Ürünün birim fiyatı 20 TL olsun. Eğer üründen 10 ve 10’dan az olursa herhangi bir indirim olmasın, toplam fiyat hesaplansın. Eğer üründen 10’dan fazla 20 ve 20’den de az ise toplam tutara %10 indirim uygulansın. Eğer ürün adedi 21 ila 30 arasında ise (30 dahil) yüzde 20 indirim olsun. Eğer ürün adedi 31’den fazla ise %30 indirim olsun. İndirim tutarları toplamdan düşsün ve son tutar hesaplansın.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form5 : Form
    {
        public Form5()
        {
            InitializeComponent();
        }

        private void btnHesapla_Click(object sender, EventArgs e)
        {
            //değişkenlerimi tanımlıyorum. Ondalık sonuç çıkabilir dolayısı ile Decimal tanımladım.
            double urunAdet, odenecekTutar, indirimTutar, toplam;

            //Veri dönüşümü yapıyorum. Her bir ürünün adedi 20 TL
            urunAdet = Convert.ToDouble(txtUrunAdet.Text);
            odenecekTutar = 20 * urunAdet;
            lblOdenecekTutar.Text = odenecekTutar.ToString() + " TL";

            //10 dan az ürün alındı ise karar yapım
            if (urunAdet <= 10)
            {
                indirimTutar = 0;
                toplam = odenecekTutar - indirimTutar;
                lblIndirimTutar.Text = indirimTutar.ToString();
                lblToplam.Text = toplam.ToString() + " TL";

            }
            //11 ila 20 dahil arasında ürün alınırsa karar yapım
            else if (urunAdet >= 11 && urunAdet <= 20)
            {
                indirimTutar = (urunAdet * 20 * 0.10);
                toplam = odenecekTutar - indirimTutar;
                lblIndirimTutar.Text = indirimTutar.ToString();
                lblToplam.Text = toplam.ToString() + " TL";
                
            }
            //21 ila 30 dahil arasında ürün alınırsa karar yapım
            else if (urunAdet >= 21 && urunAdet <= 30)
            {
                indirimTutar = (urunAdet * 20 * 0.20);
                toplam = odenecekTutar - indirimTutar;
                lblIndirimTutar.Text = indirimTutar.ToString();
                lblToplam.Text = toplam.ToString() + " TL";

            }
            //30'dan fazla ürün alındı ise karar yapım.
            else
            {
                indirimTutar = (urunAdet * 20 * 0.30);
                toplam = odenecekTutar - indirimTutar;
                lblIndirimTutar.Text = indirimTutar.ToString();
                lblToplam.Text = toplam.ToString() + " TL";

            }
        }
    }
}

Bir cevap yazın

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