“Switch case” ile “if-else” kullanım alanları oldukça benzer. Bazı durumlarda çok sayıda “if-else” yapmaktansa “switch case” yapısını kullanmayı tercih ediyoruz. Yine de aralarında ufak farklılıklar var. Örneğin “switch case” yapısında aralık değeri girilemez, direkt olarak ifadenin herhangi bir şeye eşit olup olmadığına bakarız. Bir diğer fark ise “switch case” de uygun koşul sağlandığında döngü kesilmek zorunda olmaz. “Break” komutunu kullanmadığınız zaman diğer şartların içindeki işlemleri de yapma imkanınız olabilir.
C Programlama Dili Ayları Ekrana Yazdıran Kod
#include <stdio.h> #include <stdlib.h> int main(){ int ay; printf("Ay degerini giriniz(1-12)= "); scanf("%d",&ay); switch(ay){ case 1: printf("Girdiniginiz deger \"Ocak\" ayidir"); break; case 2: printf("Girdiniginiz deger \"Subat\" ayidir"); break; case 3: printf("Girdiniginiz deger \"Mart\" ayidir"); break; case 4: printf("Girdiniginiz deger \"Nisan\" ayidir"); break; case 5: printf("Girdiniginiz deger \"Mayis\" ayidir"); break; case 6: printf("Girdiniginiz deger \"Haziran\" ayidir"); break; case 7: printf("Girdiniginiz deger \"Temmuz\" ayidir"); break; case 8: printf("Girdiniginiz deger \"Agustos\" ayidir"); break; case 9: printf("Girdiniginiz deger \"Eylul\" ayidir"); break; case 10: printf("Girdiniğini deger \"Ekim\" ayidir"); break; case 11: printf("Girdiniğini deger \"Kasim\" ayidir"); break; case 12: printf("Girdiniğini deger \"Aralik\" ayidir"); break; default: printf("Hatali islem sectiniz!!!"); break; } printf("\n"); system("pause"); return 0; }
Örnek
Bir not değerlendirme sistemi olsun. 100 – 90 arası A, 89 – 80 arası B, 79 – 70 arası C, 69 – 60 arası D, 59 ve altıysa F olsun. Eğer 100’den büyük veya negatif bir sayı girilirse, o zaman program hatalı bir giriş yapıldığını konusunda bizleri uyarsın.
#include<stdio.h> int main( void ) { int not; printf("Lutfen notu giriniz> "); scanf("%d",¬); switch( not / 10 ) { case 10: case 9: printf("NOT: A\n"); break; case 8: printf("NOT: B\n"); break; case 7: printf("NOT: C\n"); break; case 6: printf("NOT: D\n"); break; case 5: case 4: case 3: case 2: case 1: case 0: printf("NOT: F\n"); break; default: printf("HATA: Bilinmeyen bir deger girdiniz!\n"); } return 0; }
Algoritmaya bakalım: Önce sayıyı alıyor ve 10’a bölüyoruz. Yani girilen not, 57 ise 5.7 sonucunu elde ediyoruz. Ancak iki tam sayının sonucu bir virgüllü sayı veremez, tıpkı işleme giren değişkenler gibi tam sayı olarak döner. Dolayısıyla bilgisayarın elde edeceği sonuç, 5.7 değil, sadece 5’tir. switch case yapısında koşullar yukarıdan başlayarak kontrol ediliyor. case 5’e gelindiğinde eşitlik sağlanıyor. Ama break konmadığı için, switch case’ten çıkılmıyor. Ve altında kalan işlemlerde yapılıyor. Altında herhangi bir işlem veya break olmadığından case 0’a kadar bu böyle sürüyor. Ve case 0’da ekrana bir çıktı alıp switch case yapısı break ile sonlandırılmaktadır.
C Programlama Dili Basit Hesap Makinesi
#include <stdio.h> int main(){ int x,y,tercih; printf("___ MENU ___\n"); printf("[1] Toplama\n"); printf("[2] Cikarma\n"); printf("[3] Carpma\n"); printf("[4] Bolme\n"); printf("Tercih Ettiginiz Islem Numarasi: "); scanf("%d",&tercih); switch (tercih){ case 1: printf("Islem Yapilacak Sayilari Giriniz: "); scanf("%d %d",&x,&y); printf("Sonuc: %d",x+y); break; case 2: printf("Islem Yapilacak Sayilari Giriniz: "); scanf("%d %d",&x,&y); printf("Sonuc: %d",x-y); break; case 3: printf("Islem Yapilacak Sayilari Giriniz: "); scanf("%d %d",&x,&y); printf("Sonuc: %d",x*y); break; case 4: printf("Islem Yapilacak Sayilari Giriniz: "); scanf("%d %d",&x,&y); printf("Sonuc: %d",x/y); break; default: printf("Gecerli Bir Numara Girmediniz!"); } return 0; }
Kodu analiz edecek olursak sırasıyla aşağıda ki olaylar gerçekleşir;
- Öncelikle kullanıcıdan karşısına çıkan menüde ki 1, 2, 3, 4 işlem numaralarından birini girmesi istenilir.
- Daha sonra “tercih” değişkenine kayıt edilen bu değerin, herhangi bir case değeri ile aynı olup olmadığı kontrol edilir.
- Eğer “tercih” değişkenin değeri herhangi bir case değeri ile aynıysa o case değerinin içerisinde ki işlemler yapılır.
- Eğer “tercih” değişkenin değeri herhangi bir case değeri ile aynı değilse default içerisinde ki işlemler gerçekleştirilir.
C Programlama Dilinde Haftanın Günleri
- Kullanıcıdan 1-7 aralığında bir rakam girmesi istenir,
- Girilen rakam hangi güne ait ise ekrana o gün yazdırılır,
- 1-7 aralığında bir rakam girilmez ise hata mesajı görüntülenir.
#include <stdio.h> #include <conio.h> int main(){ int gun; printf("1-7 araliginda bir deger giriniz: "); scanf("%d", &gun); switch(gun){ case 1: printf("Pazartesi"); break; case 2: printf("Sali"); break; case 3: printf("Carsamba"); break; case 4: printf("Persembe"); break; case 5: printf("Cuma"); break; case 6: printf("Cumartesi"); break; case 7: printf("Pazar"); break; default: printf("Lutfen 1-7 araliginda bir deger giriniz!"); } getch(); return 0; }