590 likes | 818 Views
Mantıksal Operatörler ve Denetim Yapıları. Boolean. Boolean, doğru ya da yanlış sonuçlarını alabilen bir değişken türüdür. Durumları belirlemek için kullanılır. Özellikle, duruma göre kod çalıştırma ve döngülerde kullanılır.
E N D
Boolean • Boolean, doğru ya da yanlış sonuçlarını alabilen bir değişken türüdür. • Durumları belirlemek için kullanılır. • Özellikle, duruma göre kod çalıştırma ve döngülerde kullanılır. • mantıksal ifadeler doğru veya yanlış değerini alan mantıksal "formüllerdir". • “bool” anahtar kelimesi ile tanımlanır. • bool bVal = true;
Boolean İşleçler • Boolean ifadeler kurmak için kullanılır. • Diğer isimleri de mantıksal işleçlerdir. • Ve && • Veya || • Değil ! • Eşitlik == • Eşitsizlik != • Karşılaştırma <, >, <=, >=
Ve (&&) Bütün değerlerin, “true” olmasını gerektirir. • true && true = true • false && true = false • true && false = false • false && false = false
Veya (||) En az bir değerin, “true” olmasını gerektirir. • true || true = true • false || true = true • true || false = true • false || false = false
Değil (!) Değeri tersine çevirir. • !true = false • ! false = true
Eşitlik (==) Her iki tarafın değeri, birbirine eşitse doğru değerini döndürür. • 1 == 2 • 1 == 0 • 42 == 42 • degisken1 == digeri
Eşitsizlik Her iki tarafın değeri, birbirinden farklıysa doğru değerini döndürür. • 1 != 2 • 1 != 0 • 42 != 42 • a != degisken
Karşılaştırma (>,<,>=,<=) Eşitsizliğin tutması durumunda doğru döndürür. • 1 < 2 • 0 > 1 • 42 <= 42 • yas >= 18
İşleç Önceliği • Parantezler • Değil (!) • Karşılaştırma (<, >, <=, >=) • Eşitlik (==) • Eşitsizlik (!=) • Ve (&&) • Veya (||) En Yüksek En Düşük
Yaygın Hatalar • Mantıksal işlemlerde en önemli hatalardan biri, öncelik sıralarına dikkat edilmeden mantıksal ifadelerin yazılmasıdır. • Diğer bir sıkıntı, = = (eşittir – eşittir ) yazılması yerine tek bir eşittir yazılmadır.
if – else • Seçme yapısı, mantıksal ifadelerin sonucuna göre alternatif komutların çalışmasını sağlar. • Mantıksal ifadeler doğru veya yanlış döndürür. İfade doğru değeri döndürdüğünde, if bölümü içindeki komutlar çalışırken, yanlışken else bölümü çalışır.
if – else • Basit if yapısına, tekli seçme yapısı adı verilir, çünkü, doğru değer geldiğinde seçilen komutu çalıştırır ya da göz önüne almaz. • ifveelse'den oluşan yapıya, çiftli seçme yapısı adı verilir, çünkü, iki farklı duruma göre iki değişik komut grubunu çalıştırır. • İç içe geçmiş if/elseyapısı, birden fazla durumu kontrol eder.
Tekli Seçim Yapısı • Tekli seçme yapısının formu şöyledir: if ( ifade ) { komutlar; } • veya if ( ifade ) komut;
if – else if – else • if genellikle şöyle yazılır: • if – else yapısı da söyle yazılabilir: noktalı virgül gelmeyecek!!!! if ( ifade ) deyim; noktalı virgül gelmeyecek!!!! if ( ifade ) deyim1; else deyim2; noktalı virgül gelmeyecek!!!!
if – else if – else • if yapısının genel formu şöyledir: if ( mantıksal ifade doğruysa ) deyim ; else if (mantıksal ifade doğruysa) deyim ; else deyim ;
Çoklu if – else if – else • Birden fazla else – if yapısı, tek satırlık komutlar olduğunda şöyle kurulabilir: if ( bu mantıksal ifade doğruysa ) deyim ; else if (bu mantıksal ifade doğruysa) deyim ; else if (bu mantıksal ifade doğruysa) deyim ; else deyim ;
Bloklu if – else if – else if (bu mantıksal ifade doğruysa ) { bu bloktaki komutları çalıştır; } else if (bu mantıksal ifade doğruysa ) { bu bloktaki komutları çalıştır; } else { bu bloktaki komutları çalıştır; }
Sınıf Çalışması • Meteoroloji Müdürlüğü, hava durumu raporlarının daha anlaşılabilir olması için, nem oranı değerlerinin insanların anlayabileceği hale getirmek için bir program istemektedir. • Kullanıcın girdiği 0 ve 100 arasındaki tamsayı nem oranı değerleri için ekrana şunları yazacaktır. • %20 veya aşağısı "Çok Kuru" • %21 - %40: "Kuru" • %41 - %60: "Biraz Kuru" • %61 - %80: "Biraz Nemli" • %81 veya fazla: "Nemli“ • Kullanıcıya nem derecesi soran ve if/else yapısı içeren programı yazınız.
Birleşik if deyimleri • C# derleyicisi else deyimini en yakın if deyimiyle eşler. Bu nedenle, program mantığını doğru kurmak ve {} parantezlerini kullanmak daha doğru olur. if (nem < 20) if (sicaklik <= 0) Console.WriteLine("Soğuk ve kuru bir gün.") if (ruzgar < 10) Console.WriteLine("Ne güzel, rüzgar yok"); else Console.WriteLine("nem düşük ve 0 dereceden yüksek"); else if (nem < 60) if (sicaklik <= 0) Console.WriteLine("soguk ve orta nemli."); else Console.WriteLine("0'dan büyük, orta nem oranı."); ?
Birleşik if Deyimleri if (nem < 20) { if (sicaklik <= 0) { Console.WriteLine("Soğuk ve kuru bir gün.") if (ruzgar < 10) { Console.WriteLine("Ne güzel ki rüzgar yok"); } } else { Console.WriteLine("nem düşük ve 0 dan yüksek"); } } else if (nem < 60) { if (sicaklik <= 0) { Console.WriteLine("soguk ve orta nemli."); } else Console.WriteLine("0'dan büyük, orta nem oranı."); }
switch – case yapısı Çok durumlu seçme yapısı
switch - case • Bir algoritmada bir dizi işlem, bir değişkenin farklı değerlerine göre yapılacaksa, çoklu seçme yapısı kullanışlıdır. • Algoritmada, değişkenin alabileceği her farklı değer için farklı komut dizileri çalıştırılabilir. • C#dili, switch-case yapısı adı altında böyle bir yapı sunar.
Yazım switch (sınama değeri ) { casesabit_değer1 : işlemler ; break; casesabit_değer2 : işlemler ; break; case sabit_değer3 : işlemler ; break; default : işlemler ; break; }
switch - case • switchkelimesi, yapının başlangıcını belirler. • switch bölümünden sonra bir değişken yazılmalıdır. • Değişkenin tipi karakter veya numerik olabilir. • case bölümünde, sabit değerler olmalıdır. Burada ifade bulunmaz. • case bölümleri break ifadesi ile bitirilmelidir. • case'den sonra { } işaretlerine gerek yoktur.
Sınıf Alıştırması • Ekrandan, öğrencinin aldığı harf notunu (tek harf) okuyan bir program yazınız. Eğer • A: "Çok güzel" • B: "Güzel" • C: "Fena Değil" • D: "İyi değil" • F: "Çok kötü"
Alıştırma • Meteoroloji Müdürlüğü, hava durumu raporlarının daha anlaşılabilir olması için, nem oranı değerlerinin insanların anlayabileceği hale getirmek için bir program istemektedir. • Kullanıcın girdiği 0 ve 100 arasındaki tamsayı nem oranı değerleri için ekrana şunları yazacaktır. • %20 veya aşağısı "Çok Kuru" • %21 - %40: "Kuru" • %41 - %60: "Biraz Kuru" • %61 - %80: "Biraz Nemli" • %81 veya fazla: "Nemli“ • Kullanıcıya nem derecesi soran ve switch / case yapısı içeren programı yazınız.
Switch – Case Hakkında Notlar • switch parantezleri içinde double,decimal tipinde değişken kullanılmaz. • case etiketinden sonra istenen sayıda deyim satırı bulunabilir. • Her zaman default: bölümünü kullanmanız program yazarken hataları bulabilmenizi sağlar. • En çok rastlanan hata break; deyiminin unutulmasıdır. Switch yapısı kurulduktan sonra break'lerin doğru yerlerde olup olmadığını kontrol ediniz.
Döngüler while, do-while, for döngüleri
Tekrar Yapıları • Tekrar yapıları, kod bloklarının tekrar işletilmesini sağlar. • Tekrar yapısı içindeki kod bloğunun tekrar edilip edilmeyeceği mantıksal bir ifadenin sonucuna göre karar verilir. Eğer yanlışsa, kod bloğu tekrar edilmez. • Kodun belirli bir sayıda tekrar edilmesini sağlayan for döngüsü gibi, belirsiz sayıda tekrar edilmesini sağlayan while veya do-while döngüleri de bulunur.
Tekrar Yapıları • for ve while döngüleri, mantıksal ifadenin en başta sınandığı yapılardır. Mantıksal ifade doğruysa, döngüye girilir yoksa döngüden çıkılır. • do-whiledöngüsü, tekrar bloğunun en sonunda sınamanın yapıldığı yapılardır. Kod bloğunu bir kez işletir ve bir kez daha tekrarlanabileceği konusunda mantıksal ifadenin sonucuna bakılır.
while döngüsü • Kullanımı iki türlüdür: while ( mantıksal ifade doğru ) ifade ; while (mantıksal ifade doğru) { ifade ; ifade ; }
do-while döngüsü do statement; while ( mantıksal ifade doğru ); do { ifade ; ifade ; } while ( mantıksal ifade doğru) ;
for Döngüsü • başlatma deyimleri döngü başlamadan önce çalışan komutlardır. Birden fazla sayıda olabilir. Bu durumda, her deyim arasına "," (virgül) konulur. • düzeltmeler, döngünün sonunda çalıştırılan işlemlerdir. Birden fazla olabilir ve aralarına "," (virgül) konulur. İşletim sırası soldan sağadır. • Döngünün sonunda düzeltmeler yapıldıktan sonra, mantıksal deyim true değerini verirse, döngüye devam edilir. Yoksa döngüden çıkılır. for( başlatma deyimleri;mantıksal deyim;düzeltmeler) { deyim; }
for Döngüsü • for (deyim1; deyim2 ; deyim3) • { • ifadeler ; • } • deyim1, for döngüsünün en başındaki ilk durumu belirler. Matematiksel bir işlem olabildiği gibi birbirinden virgüllerle ayrılmış pek çok işlem de olabilir. Döngü • işletilmeden önce bir kez çalıştırılır.
for Döngüsü • for (deyim1 ;deyim2; deyim3) • { • ifadeler ; • } • deyim2, doğru yada yanlış değerini döndüren mantıksal bir işlemdir. deyim1 içinde değişen değişkenlerden biri olmasına gerek yoktur.
for Döngüsü • for (deyim1 ; deyim2 ;deyim3) • { • ifadeler ; • } • deyim3, durumdaki değişikliği sağlayan işlemdir. Birden fazla işlem birbirinden virgülle ayrılabilir.deyim1vedeyim2'de kullanılan değişkenlerle ilgisi olmayabilir.
Örnekler for (int sayac = 1 ; sayac <= 10; sayac++) { Console.WriteLine(sayac.ToString()); }
Örnekler int sayac = 1; for (; sayac <= 10;) { Console.WriteLine(sayac.ToString()); sayac++; } int sayac = 1; for (;;) { Console.WriteLine(sayac.ToString()); sayac++; if (sayac>10) break; }
Notlar • for yapısı içindeki deyim1, deyim2, ve deyim3 boş bırakılabilir. Ama noktalı virgüllerin tutulması gereklidir. • deyim1'in ve deyim3'ün yazılmaması for döngüsünün while döngüsü olarak davranmasını sağlar. • deyim2'yi yazmadan, döngünün ne zaman biteceği bulunamaz. Bu durumda, break komutuyla döngünün dışına çıkılabilir. • Döngüde deyim1 ve deyim3 birden fazla ifade içerebilir. Bunlar kullanılarak program basitleştirilebilir.
for while deyim1 ; while ( deyim2 ) { ifadeler ; deyim3 ; } Her iki örnek de birbirinin aynısı şekilde çalışır. for ( deyim1 ; deyim2; deyim3 ) { ifadeler ; }
Örnek int sayac ; for(sayac = 0 ; sayac <= 10 ; sayac++) { Console.WriteLine(“Sayaç değeri:”+sayac.ToString()); } int sayac ; sayac = 1 ; while ( sayac <= 10 ) { Console.WriteLine(“Sayaç değeri:”+sayac.ToString()); sayac++ ; }