Chapter 4: Making Decisions
Mantık-Planlama Araçları Anlama ve Karar Verme Sahte Kod (Sözde Kod) Programcılara yardımcı olmak amacıyla programın mantığının planını sade bir ingilizce kullanarak ifade eden araçtır. Akış Şeması Şekilleri oklarla bağlantılı bir dizi diyagramı şeklinde adımların yazılmasıdır Microsoft Visual C# 2012, Fifth Edition
Mantık-Planlama Araçları Anlama ve Karar Verme Şekil 4-1 :Sıralı yapının Akış şeması ve sözde kodu Microsoft Visual C# 2012, Fifth Edition
Mantık-Planlama Araçları Anlama ve Karar Verme Karar Yapısı Alternatif bir program içinde bir değeri temel alarak eylem arasında seçerek içerir. En temel forma ayrıldığında tüm bilgisayarların kararları evet veya hayır kararlarıdır. Microsoft Visual C# 2012, Fifth Edition
Şekil 4-2: Akış şemasının içerdiği karar yapısı Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Tek alternatif karar yapmak için kullanılır. Blok Bir veya birden çok ifadeleri içinde bulunan bir çift ayraç {} Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-3 :Özgün bir if ifadesi tarafindan ayri bir ifadenin izlediği akış şeması ve kodu Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-4 :Bir if ifadesinin noktalı virgülle ayri bir ifadesini takip ettiği akış şeması ve kodu Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-5 : İçinde blok bulunan özgün bir if ifadesinin akış şeması ve kodu Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-6 :Akış şeması ve kod içerdiği Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek İç içe geçmiş if Bir karar yapısı, ya da if ifadesi, başka bir içinde yer alıyorsa Karar yapıları birden fazla düzeyde iç içe olabilir Eğer dış düzeydeki if ifadesi başarısı olur veya (false) yanlış bir sonuç döndürürse, tüm iç kod blokları göz ardı edilir. Çok fazla düzey oluşturmak kodu zor anlamamıza ve koruyamamıza neden olabilir. Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-7 : İç içe geçmiş if mantığını gösteren kod ve akış şeması Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-8 :İç içe if ifadeleri kullanan program Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Çift – alternatif kararlar İki olası sonucu vardır if-else ifadesi Bir eylemi gerçekleştirmek için kullanılan bir Boolean ifadesi doğru (true)olarak değerlendirilip , ve bir başka eylemin ise yanlış (false)olarak değerlendirilimesidir. Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-10 : Bir çift alternatif if – else ifadesinin mantığını gösteren kod ve akış şeması Microsoft Visual C# 2012, Fifth Edition
if İfadesini Kullanarak Karar Vermek Şekil 4-11 :Bir çift if – else ifadesi olan program Microsoft Visual C# 2012, Fifth Edition
if İfadelerinde Bileşik İfadeleri Kullanma Birden fazla kararı tek bir if ifadesi içine kombine edebilirsiniz. (VE) AND ve OR(VEYA) operatörleri kombinasyonlarını kullanınız. Bazı durumlarda iç içe geçmiş if ifadesi gibi kullanılabilir Microsoft Visual C# 2012, Fifth Edition
Şartlı VE(AND) Operatörünü Kullanma Her iki ifadeninde doğru (true) olup olmadığını belirler İki kez (&&) işareti kullanılarak yazılır Her iki tarafında tam bir Boolean ifadesi içermelidir Microsoft Visual C# 2012, Fifth Edition
Şartlı VE(AND) Operatörünü Kullanma Tablo 4-1 : && operatörünün koşulu için doğruluk tablosu Microsoft Visual C# 2012, Fifth Edition
Şartlı VE(AND) Operatörünü Kullanma Şekil 4-14 : && operatörünün ve iç içe if ifadelerinin karşılaştırması Microsoft Visual C# 2012, Fifth Edition
Şartlı VEYA(OR) Operatörünü Kullanma Bazı eylemin gerçekleşmesini istediğinizde kullanılan iki durumlardan sadece bir tanesi bile doğru(true)olması durumudur. İki boru gibi yazılır || Her iki tarafında tam bir Boolean ifadesi içermelidir Microsoft Visual C# 2012, Fifth Edition
Şartlı VEYA(OR) Operatörünü Kullanma Tablo 4-2 : || operatörü için doğruluk tablosu Microsoft Visual C# 2012, Fifth Edition
Şartlı VEYA(OR) Operatörünü Kullanma Şekil 4-15 : || operatörünün ve iç içe if ifadelerinin karşılaştırması Microsoft Visual C# 2012, Fifth Edition
Ve(AND) ve Veya (OR) Operatörlerini Birleştirme Şekil 4-16 : Film bileti indirim programında parantez kullanarak Boolean değerlendirmesi önceliğini değiştirmek Microsoft Visual C# 2012, Fifth Edition
(Değiştirme)switch İfadesini Kullanarak Karar Verme switch (Değiştirme) yapısı Tam eşleşmelerin bir dizine karşı tek bir değişkeni test eder. switch, case, break, ve default Değiştirme, durum, kırılmak,varsayılan (Değiştirmenin) switch (varsayılan duruma) default case ihtiyacı yoktur İyi programlama birini içerecek şekilde uygulamasıdır. Microsoft Visual C# 2012, Fifth Edition
(Değiştirme)switch İfadesini Kullanarak Karar Verme “No fall through rule” “Hiçbir düşüş kuralı” Kodun duruma ulaşmasına izim vermez. break ifadesini her bir durum (case) ifadesinden sonra kullan. Microsoft Visual C# 2012, Fifth Edition
(Değiştirme)switch İfadesini Kullanarak Karar Verme Şekil 4-20 : Bir dizi if ifadesi kullanılarak birden çok alternatiflerin yürütülmesi Microsoft Visual C# 2012, Fifth Edition
(Değiştirme)switch İfadesini Kullanarak Karar Verme Şekil 4-21 : Değiştirme(switch) ifadesi kullanılarak birden çok alternatiflerin yürütülmesi Microsoft Visual C# 2012, Fifth Edition
(Değiştirme)switch İfadesini Kullanarak Karar Verme İfadelerin listesini yönetmek için birden fazla etiket kullanabilirsiniz. Şekil 4-22 : Örnek geçiş yapısında tek bir ifade bloğunu çalıştırmak için birden fazla etiket kullanma Microsoft Visual C# 2012, Fifth Edition
Şart Operatörünü Kullanma if-else ifadesinin kısaltılmış bir versiyonu olarak kullanılır. Üçlü operatör, üç parametre alır. Söz dizisi (Dil kuralları) testExpression ? trueResult : falseResult; Örnek Console.WriteLine((testScore >= 60) ? "Pass" : " Fail"); Microsoft Visual C# 2012, Fifth Edition
DEĞİL (NOT) Operatörünü Kullanma Bir ünlem işareti olarak yazılır(!) Boolean ifadesinin sonucunun olumsuzudur. Eğer Boolean ifadesi doğru (true) ise, ! Yanlış (false)yap Eğer Boolean ifadesi yanlış (false) ise , ! Doğru (true)yap Mantık ! Operatörünü kullanarak okumak ve analiz etmek zor olabilir. “!” operatörü “&&” ve “||”ünden operatöründen daha yüksek bir önceliğe sahiptir. Microsoft Visual C# 2012, Fifth Edition
Karar Alırken Sık Karşılaşılan Hataları Önleme En sık rastlanan hatalar : Atama operatörünün (=) kıyaslama operatörü (==) yerine kullanılması If ifadesinde Boolean ifadesinden sonra noktalı virgül kullanma İfade kümeleri bloklarında çift ayraç kullanım hatası Boolean ifadesinde && veya || operatörlerinin her iki tarafından da bulunmaması Microsoft Visual C# 2012, Fifth Edition
Doğru Ve Verimli Aralık Kontrolü Denetimi Aralık Denetimi if ifadeleri serisi bir değerin belirli bir aralık içine düşüp düşmediğini kontrol eder. Problem Microsoft Visual C# 2012, Fifth Edition
Doğru Ve Verimli Aralık Kontrolü Denetimi Çözüm if(saleAmount >= 1000) commissionRate = 0.08; else if(saleAmount >= 500) commissionRate = 0.06; else commissionRate = 0.05; Microsoft Visual C# 2012, Fifth Edition
Uygun && ve ||Operatörünü Kullanma Problem Bir çalışanın saat ücreti oranı $ 5.65’ten azsa ve bir çalışanın saatlik ücret oranı $ 60’dan daha fazla olduğunda hata mesajı yazdır. Çözüm if(payRate < 5.65 || payRate > 60) Console.WriteLine ("Error in pay rate"); Microsoft Visual C# 2012, Fifth Edition
Doğru Şekilde “!” Operatörünü Kullanmay Problem Satış kodu 'A' veya 'B' değil ise, müşterinin % 10 indirim alıcağından emin ol Çözüm if(salesCode != 'A' && salesCode != 'B') discount = 0.10; if(!(salesCode == 'A' || salesCode == 'B')) Microsoft Visual C# 2012, Fifth Edition
GUI Programlarında Karar Verme Sorunları Bir GUI uygulamasında bir yöntem içinde bir karar bir konsol uygulamasında da farksızdır. if, if…else, ve switch ifadelerini aynı şekilde kullanabilirsiniz. GUI programlar karar vermek için denetimleri kullanırlar. Olay ateşlenmesine neden olacak bir Butona tıkladığında Kullanıcı birkaç RadyoButonları seçtiğinde Kullanıcı Liste Kutusundan bir öğe seçtiğinde Microsoft Visual C# 2012, Fifth Edition
GUI Programlarında Karar Verme Sorunları Şekil 4-25 : Film indirim formu Microsoft Visual C# 2012, Fifth Edition
GUI Programlarında Karar Verme Sorunları Şekil 4-26 : Şekil 4-25 deki form için discountButton_Click() metodu Microsoft Visual C# 2012, Fifth Edition