C# Karar Yapıları (if, else, switch)
C#’ta karar yapıları: if, else if, else ve switch ile koşullara göre farklı işlemler yapmayı öğrenin.
Programlamada çoğu zaman belirli koşullara göre farklı işlemler yapmak gerekir. C# dilinde bu tür durumlar için karar yapıları (decision structures) kullanılır. En yaygın kullanılanları if, else if, else ve switch yapılarıdır.
if Yapısı
if ifadesi, belirtilen koşul true (doğru) olduğunda çalışır.
int sayi = 10;
if (sayi > 5)
{
Console.WriteLine("Sayı 5'ten büyüktür.");
}
Koşul yanlış ise (örneğin sayi = 3), blok çalıştırılmaz.
if - else Yapısı
Koşul doğru değilse alternatif kodu çalıştırmak için else kullanılır.
Console.Write("Notunuzu giriniz: ");
int not = int.Parse(Console.ReadLine()); // string'den int'e dönüştürme
if (not >= 50)
{
Console.WriteLine("Geçtiniz.");
}
else
{
Console.WriteLine("Kaldınız.");
}
if - else if - else
Birden fazla koşulu ardışık olarak kontrol etmek için else if kullanılır.
int puan = 75;
if (puan >= 90)
{
Console.WriteLine("Not: AA");
}
else if (puan >= 70)
{
Console.WriteLine("Not: BB");
}
else if (puan >= 50)
{
Console.WriteLine("Not: CC");
}
else
{
Console.WriteLine("Kaldınız");
}
switch Yapısı
Bir değişkenin farklı sabit değerlerine göre dallanma yapmak için switch kullanılır. Özellikle çok sayıda else if olduğunda daha okunaklıdır.
Console.Write("Gün numarası giriniz (1-7): ");
int gun = int.Parse(Console.ReadLine());
switch (gun)
{
case 1:
Console.WriteLine("Pazartesi");
break;
case 2:
Console.WriteLine("Salı");
break;
case 3:
Console.WriteLine("Çarşamba");
break;
case 4:
Console.WriteLine("Perşembe");
break;
case 5:
Console.WriteLine("Cuma");
break;
case 6:
Console.WriteLine("Cumartesi");
break;
case 7:
Console.WriteLine("Pazar");
break;
default:
Console.WriteLine("Geçersiz gün!");
break;
}
Kullanıcı Girdisi ile Karar Yapıları
Karar yapıları genellikle kullanıcıdan alınan girdilere göre çalışır.
Console.Write("Bir sayı giriniz: ");
int sayi = int.Parse(Console.ReadLine());
if (sayi % 2 == 0)
{
Console.WriteLine("Sayı çifttir.");
}
else
{
Console.WriteLine("Sayı tektir.");
}
Özet
if: Belirli bir koşul doğruysa çalışır.else: Koşul yanlışsa alternatif kod çalışır.else if: Birden fazla koşul ardışık kontrol edilir.switch: Sabit değerler için dallanma sağlar.
Menü Örneği: if, else if, else ve switch Kullanımı
Bu örnekte, konsolda çalışan basit bir menü sistemi hazırlanmıştır.
Kullanıcı bir seçim yapar, if / else if / else yapısı ile seçim kontrol edilir ve
switch yapısı ile istenen matematiksel işlem gerçekleştirilir.
Böylece koşul ve seçim yapılarının bir arada nasıl kullanılabileceği gösterilmektedir.
using System;
class Program
{
static void Main()
{
Console.WriteLine("=== Menü ===");
Console.WriteLine("1 - Toplama");
Console.WriteLine("2 - Çıkarma");
Console.WriteLine("3 - Çarpma");
Console.WriteLine("4 - Bölme");
Console.WriteLine("0 - Çıkış");
Console.Write("Seçiminizi giriniz: ");
int secim = int.Parse(Console.ReadLine()); // string'den int'e dönüştürme
// if - else if - else ile kontrol
if (secim == 0)
{
Console.WriteLine("Programdan çıkılıyor...");
}
else if (secim >= 1 && secim <= 4)
{
Console.Write("Birinci sayıyı giriniz: ");
double sayi1 = double.Parse(Console.ReadLine());
Console.Write("İkinci sayıyı giriniz: ");
double sayi2 = double.Parse(Console.ReadLine());
// switch ile işlem seçimi
switch (secim)
{
case 1:
Console.WriteLine($"Sonuç: {sayi1 + sayi2}");
break;
case 2:
Console.WriteLine($"Sonuç: {sayi1 - sayi2}");
break;
case 3:
Console.WriteLine($"Sonuç: {sayi1 * sayi2}");
break;
case 4:
if (sayi2 != 0)
Console.WriteLine($"Sonuç: {sayi1 / sayi2}");
else
Console.WriteLine("Hata: Sıfıra bölme yapılamaz!");
break;
}
}
else
{
Console.WriteLine("Geçersiz seçim yaptınız.");
}
}
}