Şart blokları

Eğer şart blokları olmasaydı programlama gerçekten çok zor bir hal alabilirdi, çünkü programlamanın mantığı bu bence, eğer öyleyse böyle yap böyleyse şöyle yap bir şeyi programlamak onu şartlamaktır bana kalırsa.

Her neyse efendim gelelimiz şart bloklarına, biz bir koşulu sorgulamak istiyorsak if komutunu kullanmalıyız if komutu eğer o koşul doğruysa scope’u içerisindeki kodların çalışmasını sağlar eğer şart doğru değil ise o kod hiç çalışmaz gelelim syntax’ına

şart bloğumuz if koşulu ile başlıyır if kelimesinin ingilizce karşılığı zaten ise, öyleyse demek yani adamlar olduğu gibi koymuş ve şunu bilmelisiniz ki bütün programlama dillerinde ( en azından benim gördüğüm ) if çalışma mantığı aynıdır.

C# içerisinde if ifadesinden sonra onu bir parantez bekler ve bu parantez içerisindeki koşul doğru ise koşulumuzun altındaki satır çalışır eğer doğru değilse çalışmaz.

Zaten karşılaştırma operatörleri dersimizde 5 > 10 ifadesinin bool tipinde false değerini döndürdüğünü biliyoruz yani yanlış, yani kodumuz çalışmayacak

Not : buradaki 5 ve 10 değerlerini elle vermem bir şey değiştirmiyor, 5 sayısını kullanıcıdan veya herhangi bir dış kaynaktan alınan input olarak düşünebilirsiniz.

Burada programın çalışma şeklini görmeniz gerekiyor o yüzden bilgisayarınızda yazın diyerek riske atmayacağım aşağıdaki programı Play tuşuna basarak çalıştıralım ve ne tür bir sonuç alacağız görelim.

Gördüğünüz gibi if’den sonraki komut çalışmadı çünkü koşulumuz doğru değil!

Yukarıdaki kod bloğunda if koşulu içerisine bir şarttan ziyade bool değişkeni koydum gördüğünüz gibi herhangi bir hata yok ve çalışma şeklinde değişen bir şey yok aynen devam eder siz kullaniciGirdi değişkenini değiştirip sifreDogru ifadesini bool yapmaya çalışın ve çıktımız ne şekilde değişecek bakalım. Çünkü şuanki  haliyle Hoş geldiniz satırı ekrana yazdırılmıyor.

Eğer sizin koşul doğruysa yapmanız gereken işlem sayısı 1 satırdan fazla ise, aslında satır değil satırdan kastım noktalı virgül’ü sonuna koyduğunuz ifade sayısı diye düşünelim.

Birden fazla ise yapmanız gereken bir değişiklik var çünkü farkettiyseniz if koşuluna şuan için tek bir satır çalıştırabiliyoruz.

Süslü süslü parantezler, {} if koşulumuzdan sonra dikkat ederseniz sonra dedim yani parantezi kapattıktan sonra bir süslü parantez açalım ve kapatalım.

yukarıdaki kod bloğunda 7. ve 8. satırdaki süslü parantezleri görüyorsunuz bu parantezler if koşulunun çalışma alanını belirler yani eğer if bloğu doğruysa bu satırlar arasındaki kodlar çalışacak fakat ben bunların içerisine herhangi bir şey yazmadım, yani program olduğu gibi çalışır dikkat edin siz bu süslü parantezleri şu şekilde de eklemiş olabilirdiniz.

if komutunun hemen sonuna bakın orada süslü parantez açıp kapanmış yani Hoş geldiniz kodu if koşulu içerisinde gibi gözüküyor ama aslında değil o if koşulunun çalışma alanı eğer süslü parantezler eklenmiş ise süslü parantezlerin içidir, kod olsa da olmasa da!

Yukarıdaki kod bloklarını biraz değiştirip aşağıya bir kod ekliyorum gelin bu kodu birlikte inceleyelim.

Yukarıdaki kodda eğer şifre doğru ise şifreniz doğru yazdırıyoruz fakat şifresi yanlış ise ne yapmalıyız?

Kullanıcıyı bilgilendirebiliriz, fakat bunu nerde yapmalıyız nasıl yapmalıyız?

Burda karşımız else ifadesi geliyor else ifadesinin ingilizce anlamı zaten

Yukarıda gördüğünüz gibi yani başka , diğer anlamları taşıyor yani yukarıdaki if koşulu çalışmazsa şunu çalıştır gibi bir şey demiş oluyoruz

Yani özetle kullancının şifresi doğru ise şunu yazdır değilse şunu yazdır gibi bir program yazmak istiyorsak.

else ifadesinin şart blokları if ile çok benzer eğer süslü parantezler ile çalışma alanı belirlenmez ise hemen altındaki satır çalıştırılır eğer dahil edilirse çalışma alanı çalıştırılır  yukarıdaki kod parçasında if ve else için çalışma alanı belirlemedim yani hemen altındaki satırlar çalıştırılacak.

else ifadesinin kullanımı ife göre daha basit çünkü içerisinde herhangi bir koşul yazmıyoruz fakat yazabiliriz.

Kullanıcıdan tek bir rakam aldığınızı ve bu rakamın metinsel karşılığını yazdırdığımızı düşünelim örneğin 1 için bir 2 için iki

Yukarıdaki kodlarda satırlarında herhangi bir problem yok ekrana sadece bir mesajını yazdıracak, fakat aslında programın çalışma zamanını etkileyecek bir şey mevcut.

Yukarıdaki ifadede ilk koşul doğru olsa da olmasa da 2. if ifadesi kontrol edilir.

Sizce böyle bir şeye gerek var mı ? Biz zaten tek sayiyi kontrol ediyoruz.

Burada kod’a herhangi bir etkisi olmuyor gibi gözükebilir fakat, her if koşulu içerisinde karmaşık işlemler yaptığımızı ve çalışma zamanının baya bir vakit aldığını var sayalım.

Resim 1

Yukarıdaki kodu şuan için anlamanızı beklemiyorum, fakat kısaca çalışma mantığını açıklayayım, bizim if koşulumuz bir doğruluk bekliyor ve ben bu kod içerisinde bir fonksiyon çalıştırıyorum bu fonksiyon asenkronik olduğu için bu fonksiyonu await komutu ile çalışmasının sonlanmasını bekliyorum, ve fonksiyon içerisinde 2 parametre alıyorum bunlardan birisi kullanıcının girdiği sayısı diğeri de olmasını istediğim sayı. Eğer olmasını istediğim sayı verilen sayıya eşit ise true değilse false değeri döndürecek geriye, bildiğiniz üzere if koşulunun içerisi sadece dönen değer true ise çalışacak.

Ve fonksiyonun çalışıp çalışmadığını görebilmemiz garanti olması açısından içerisinde sayının kontrol edildiğini kullanıcıya bilgi olarak sunuyorum ( Resim 1:satır 19)

yukarıdaki kod çalıştırdığınızda bekleme oluyor ve bu bekleme 4 saniye resim1:18. satırda yazdığımız delay ifadesi kadar, ve biz ilk koşulumuz doğru olmasına rağmen gereksiz yere ikinci if koşulunu da sorguluyoruz bunun olmasını else ifadesi ile engelleyebiliyoruz.

Eğer resim1: satır 10 if koşulu başına else koyarsak, 1. satır doğru olduğu takdirde 2. if ifadesi kontrol edilmeyecek ve sistemde gereksiz bir bekleme yaşanmayacak.

İlk çıktının içerisinde gördüğünüz gibi iki adet Sayı Kontrol ediliyor ifadesi var fakat diğerinde ise 1 adet çünkü ilkinde if ifadesinin başına else ifadesi eklememiştik.

Else ifadesi için aklınızda tutmanız gereken 2 şey var

  1. Her zaman kendinden önce bir if koşulunun olması gerek!
  2. Eğer if koşulu doğru ise else ifadesi çalışmaz!

Peki else-if ifadesi nasıl işler.

Yukarıdaki 2 şart gene gerekli fakat else içerisinde bir if olduğundan ötürü şart bloğunun çalışması için if koşulunun doğru olması gerekir. Yani bir üstteki if koşulu yanlış olsa bile eğer else-if ifadesi var ise kontrol edilmesi gerekir.

Eğer sadece else ifadesi var ise herhangi bir koşul sorgulanmadığı için doğrudan çalışma alanı içindeki kodlar çalıştırılır.

Lütfen aşağıdaki kodu inceleyerek eksik yerleri tamamlayın, unutmayın kodumuz 0 ile 10 arasındaki rakamların metinsel ifadesini ekrana yazdıracak.

Sorularınız için lütfen yorum kısmına yazın, belki sizin cevabınız başka birisinin sorusuyla aynıdır.

erdincyasan Yazar:

0 0 votes
Değerlendirme
guest
0 Yorum
Inline Feedbacks
View all comments