C# Karar Yapıları ( if Statements )
- Abdullah Karaosmanoğlu
- 8 Şub 2024
- 3 dakikada okunur

Herkese merhaba dostlar, ben Abdullah 24 yaşındayım ve üniversite öğrencisiyim. Bugün sizlere dostlar C#'ta temel olan bir konuya değineceğiz. Bu yazımızda bahsedeceğimiz konu Karar Yapıları.

Nedir bu Karar Yapıları ?
Şimdi ilk önce bunu açıklayalım. Karar Yapıları diye adlandırdığımız konu yazdığımız herhangi bir projede, uygulamada belirli koşulları sağlar ise çalışmasını istediğimiz ya da çalışmamasını istemediğimiz özel durumlarda kullanırız.
Neden Karar Yapılarına İhtiyaç duyarız ?
Bahsettiğimiz bu yazılım dilinde C#'ta uygulama ayağa kalktığı zaman yani çalıştığı zaman kodlarımız en soldan ve ilk satırdan okunmaya, işlenmeye ve çalışmaya başlar. Proje işleyiş şekli olarak bazı yerlerde bazı şartların oluşmasını ya da oluşmamasını isteriz. Kısaca bazen bazı kod bloklarının atlanması veya bir koşula bağlı olarak çalışması istenir. İşte bu kısmı bizim için karar yapıları sağlar.
YARDIMCI OPERATÖRLER
Bize bu konuda yardımcı olan bir kaç tane "Operatör" diye adlandırdığımız yardımcılarımız var hadi onlara göz atalım.
OPERATÖR | SYNTAX YAZIMI | AÇIKLAMA |
== | X == Y | X eşit ise Y'ye |
!= | X != Y | X eşit değil ise Y'ye |
> | X > Y | X büyük ise Y'ye |
< | X < Y | X küçük ise Y'ye |
>= | X >= Y | X büyük veya eşit ise Y'ye |
<= | X <= Y | X küçük veya eşit ise Y'ye |
Evet dostlar yukarıdaki hazırlamış olduğum tabloda temel olarak bazı operatörlerimiz mevcut. Biraz daha ileriki seviye diğer yazımda daha farklı operatörlere de birlikte göz atacağız.
Buraya kadar tamamsak devam edebiliriz. Karar Yapısı olarak kullanılan 2 farklı yöntem vardır. İki yönteminde çalışma mantığı aynıdır sadece kullanım yerine veya şartlara göre hangisini kullanacağımıza projede kendimiz karar veririz, hangi yol daha uygun ise onu kullanırız.
" if-else " Yapısı
" switch-case " Yapısı
if-else
C# yazılım dilinde " if-else " yapısı, bir koşulu değerlendirmek ve bu koşula bağlı olarak farklı kod bloklarını çalıştırmak için kullanılan bir kontrol yapısıdır. " if " ve " else " anahtar kelimeleri bu yapının temelini oluşturur.
if ifademizin içine istediğimiz koşulu yazarız burada istediğimiz koşuldan kasıt projemizde kullanacağımız yere uygun olarak gelen koşuldur. Yani diyelimki kullanıcı sitemize giriş yapacak if bloğumuzun şartına şunu diyebiliriz -> Kullanıcının girdiği username ve password daha önce kayıt olduğu username ve password ile eşit ise diye kullanıp gerekli login işlemlerini gerçekleştirebiliriz. else bloğumuzda burada devreye giriyor aslında else demek az önce yazmış olduğumuz if bloğunun şartı gerçekleşmiyor ise yapmamız gereken işlemleri yazdığımız kısım else bloğudur. Aşşağıda basit bir örnek ile daha iyi anlayacağımıza eminim.
static void Login()
{
// Kayıtlı kullanıcı bilgileri
string kayitliUsername = "kullanici123";
string kayitliPassword = "sifre123";
// Kullanıcıdan giriş bilgilerini istediğimiz bölüm
Console.Write("Kullanıcı Adı: ");
string girilenUsername = Console.ReadLine();
Console.Write("Şifre: ");
string girilenPassword = Console.ReadLine();
// Kullanıcı bilgilerini kontrol etme
if (girilenUsername == kayitliUsername && girilenPassword == kayitliPassword)
{
Console.WriteLine("Giriş başarılı! Hoş geldiniz);
// Burada yapılan girişin başarılı olduğunu gösteriyoruz.
}
else
{
Console.WriteLine("Hatalı Giriş!. Lütfen tekrar deneyin.");
// Burada yapılan girişin Başarısız hatalı olduğunu gösteriyoruz.
}
}
Yukarıda göstermiş olduğum Kod Bloğunda eğerki "giriş yapılan bilgiler doğru ise" dediğim kısım if bloğumuzun içidir ve "giriş yapılan bilgiler yanlış ise" dediğim kısım else bloğumuzun içidir.
Ayrıca, "else if" ifadesi de kullanarak birden fazla koşulu kontrol edebilirsiniz:
if (koşul1)
{
// Koşul1 doğruysa buradaki kod bloğu çalışır
}
else if (koşul2)
{
// Koşul2 doğruysa buradaki kod bloğu çalışır
}
else
{
// Hiçbir koşul sağlanmıyorsa buradaki kod bloğu çalışır
}
switch-case

switch-case yapısı, yine bir Karar Yapısıdır if-else'ten farklı olarak şu şekilde anlatabiriz. Belirli bir değerin farklı durumlarına göre farklı işlemlerin yapılmasına kontrol sağlar. switch ifadesi içinde bir kontrol ifadesi bulunur ve bu kontrol ifadesinin değeri, farklı case ifadeleri ile karşılaştırılır. Eşleşen bir d urum bulunduğunda, o duruma ait kod bloğu çalıştırılır. Eğer hiçbir case ifadesi ile eşleşme bulunmazsa, isteğe bağlı olarak bir default durumu çalıştırılır.
İşte basit bir switch-case örneği:
static void Main()
{
Console.Write("1-7 arasında bir sayı giriniz: ");
int gun = Convert.ToInt32(Console.ReadLine());
switch (gun)
{
case 1:
Console.WriteLine("Bugün Pazartesi");
break;
case 2:
Console.WriteLine("Bugün Salı");
break;
case 3:
Console.WriteLine("Bugün Çarşamba");
break;
case 4:
Console.WriteLine("Bugün Perşembe");
break;
case 5:
Console.WriteLine("Bugün Cuma");
break;
case 6:
Console.WriteLine("Bugün Cumartesi");
break;
case 7:
Console.WriteLine("Bugün Pazar");
break;
default:
Console.WriteLine("1 ile 7 arasında bir sayı girmelisiniz.");
break;
}
}
Yukarıda gösterildiği üzere if-else bloğundan farklı olarak break; ve default : blokları mevcuttur. break; bloğu case'lerde sağlanan koşul var ise gerekli işlemleri yapıp sonrasında daha başka bir koşula bakmaması için break etmesini yani terk edip çıkmasını sağlar. default bloğu ise istenilen şartlardan hiçbiri sağlanmıyor ise çalışacak olan kod bloğudur if-else'teki else görevini görür.
Küçük bir örnek ile pekiştirmek gerekirse şu şekilde bir kod paylaşabilirim.
static void Main()
{
Console.WriteLine("Bir meyve adı girin: ");
string meyve = Console.ReadLine();
switch (meyve.ToLower()) // toLower() metodu kullanıcıdan alınan girdiyi küçük harfe çevirir
{
case "elma":
Console.WriteLine("Elma seçildi.");
break;
case "muz":
Console.WriteLine("Muz seçildi.");
break;
case "üzüm":
Console.WriteLine("Üzüm seçildi.");
break;
default:
Console.WriteLine("Belirtilen meyve tanımlı değil.");
break;
}
}
Yazımı okurken fayda sağladıysanız, bu beni mutlu eder. C# ve karar yapıları gibi temel konular hakkında daha fazla içerik üretmeye devam edeceğim. Yeni bilgilerle buluşmak ümidiyle, başarılar dilerim!
the beginning of the end... ABDULLAH KARAOSMANOĞLU
Emeğine sağlık , bildiğimiz konuları bile tekrar görmekte fayda varmış dedirtti:)
Çok açıklayıcı bir yazı olmuş. Çok beğendim. Ellerine sağlık.
Çok bilgilendirici bir yazı olmuş. Eline sağlık.
Anlatım mükemmel devamını sabırsızlıkla bekliyorum 👍
Ellerinize sağlık güzel anlatım :)