Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

C# Karar Yapıları

Yeniden merhaba :)

Bir önceki dersimizde try-catch-finally kod yapısından sonra C# ile karar yapılarına geçebiliriz demektir.Yazılım dünyasında olmazsa olmazlardan biri olan ve çok sık kullanılan karar yapıları, programın o anki durumuna göre nasıl davranacağını gösterir ve bu durum sanki gerçek hayatta insan gibi kararlar vermesini sağlar.

Bir programın gelişmişlik düzeyini etkileyen faktörlerden biri olan karar yapıları program çalışmadan önce kodlama kısmında akla gelebilecek her durumu senaryolara dökerek nerede,hangi durumda ve ne zaman gibi kritik soruların sorulmasıyla kod haline dönüştürülür.
Hemen hemen bütün programlama dillerinde karar yapılarından biri olan if-else (eğer-değilse) kullanımı iki farklı duruma göre durum senaryolarını kurmamıza yardımcı olur.Yine bu mantığı kullanabilmek adına bazı mantıksal operatörlerden faydalanacağız:

mantıksal operatörler

Bunun dışında her iki koşulu aynı anda yazabilmemize yardımcı olan && (ve) || (veya) operatörlerimiz de yer
almaktadır.

Konuyu daha rahat anlamanız adına küçük bir örnek uygulama yapalım,bir not hesaplama programı kodlayalım ve
öğrenci sınav notunu girdiğinde geçip geçmediğini öğrenebilsin,tabi buradaki önemli kriter notun 45'ten büyük olup olmamasıdır.

Visual Studio'muzu açtık ve "kararYapilari" adında C#.Net dilinde bir windows form projesi oluşturduktan sonra
kontrollerimizi formumuza yerleştiriyoruz:

windows form

Textbox'ımıza "txtNot",butonumuza ise "btnSonuc" name özelliklerini belirttikten sonra butonumuza çift tıklayarak
kod kısmına geçiyoruz.
Öncelikle kullanıcının gireceği sayıyı yakalıyoruz:

C#

Notu sayısal değişkenimiz olan integer'a atadıktan sonra şimdi koşullarımızı yazmaya geldi,ilk koşulumuz için if-else
yapısını kullanıyoruz:

c# if

Eğer girilen not 45'ten küçükse başarısız olunduğu mesajını gösteriyoruz:

if else

Bir de notun 45'ten büyük olma durumu söz konusu,bunun için else deyimine geçiyoruz:

c# if else

Şimdi programı çalıştırıp test ediyoruz:

windows form

windows form

Peki ya notun tam 45 olma durumu olsaydı nasıl yazacaktık?

Bu durumda deriz ki üçüncü bir koşul söz konusu ise if-(else if)-else kod bloklarını kullanacağız,şimdi önceki karar
yapılarını yorum satırı yapıyoruz ve yeni kodlarımızı şu şekilde yazıyoruz:

c# karar yapıları

Yani burdan şu sonucu çıkarabiliriz,ikili durumlarda if-else kullanır ancak üçlü durumlarda if-(else if)-else kod yapılarını kullanırız.

Bununla birlikte bir konuya daha değinelim: karar yapıları tek düze kullanılmaktan öte iç içe karar yapıları şeklinde de yazılabilir,örneğin kullanıcı herhangi bir not bilgisi girmeden butona tıkladığını varsayalım ve program doğal olarak bozulacaktır,bu durumu önleme için textbox'ın boş geçilip geçilmediğini denetledikten sonra not hesaplanmasını isteyelim.

Textbox'ın boş geçilme durumunu String.Empty ile denetliyor ve kodları şekilde yazıyoruz:

String.Empty

Kısaca özetlersek öncelikle textbox'ımızın boş olup olmadığını denetlemek için ilk satırda;
txtNot'un text özelliği boş değilse
diyoruz ve boş geçilmişse en dıştaki else bloğuna geçilmesini sağlayarak kullanıcıya bir sayı girmesini istiyoruz:

if else-if

Ancak burda dikkat etmeniz gereken en önemli nokta textboxa girilen değeri int tipine dönüştürme işlemini textbox'ın
boş geçilip geçilmediği if bloğu içerisinde gerçekleştirilmesidir,eğer dönüşüm işlemi if bloğu dışında yazılsaydı program
değerin boş olup olmadığına bakmadan sayısal tipe dönüştürmeye çalışacak ve program bozulacaktı.

Son olarak kullanıcı textboxa sayısal 45 değilde yazıyla "kırk beş" yazsaydı ne olurdu?

Tabiki program "kırk beş" i sayısala dönüştüremeyeceği için doğal olarak patlayacaktı,bunu önlemek için bir önceki makalemizde öğrendiğimiz try-catch yapısını kullanalım.Kullanım yeri ise hemen textbox'ın boş geçilip geçilmediği if bloğu içerisinde yer almaktadır:

C# try-catch

Böylece hem karar yapısını hem de hata önleme kod yapısını gayet güzel bir şekilde öğrenmiş oluyoruz :)
Programı denersek:

c# if else try catch

Gayet güzel bir örnek olduğunu düşünüyorum,umarım kolaylıkla kavrayabilmişsinizdir örneğimizi.
Bir sonraki makalemde görüşmek dileğiyle,hoşçakalın!

Projeyi İndir

Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu