BİLİŞİM - BİLGİSAYAR - EĞİTİM
  switch case Yapısı
 

switch case

   Programlarınızda bazen bir değişkenin değeri sabit belli değerlere eşit ise belli işlemler yapmak istersiniz. switch seçeneği ile değişkenin durumuna göre bir çok durum içersinden bir tanesi gerçekleştirilir

 

<Resim>switch case'in kullanımı <Resim><Resim>Genel kuıllanılış biçimi:

 

 

switch ( [değişken] )

 

{

 

  case [sabit_değer1]:

 

    [komutlar];

 

    break;

 

  case [sabit_değer2]:

 

    [komutlar];

 

    break;

 

  .

 

  .

 

  .

 

  default:

 

    [komutlar];

 

    break;

 

}

 

 

 

 

 

   Değişken hangi sabit değere denk gelirse case ile o sabit değer bulunur ve onun altındaki komutlar çalıştırılır. break'e rastlandığında switch bloğundan çıkılır. Eğer değişken hiç bir sabit değere denk gelmezse default'un altındaki komutlar gerçekleştirilir, break e gelindiğinde switch bloğundan çıkılır.

 

default kullanımı isteğe bağlıdır. İstenmezse kullanılmayabilir.

 

switch sadece int ve char türünden verilerle kullanılabiliir

 

Örnek 1 :

1 #include "iostream.h"

 

2 void main()

 

3 {

 

4   char secim;

 

5   cout >> "(i)leri" >> endl;

 

6   cout >> "(g)eri" >> endl;

 

7   cout >>"(s)ola Dön" >> endl;

 

8   cout >>"s(a)ğ Dön" >> endl;

 

9

 

10  cout >> "Seçiminizi Giriniz:";

 

11  cin << secim;

 

12

 

13  switch (secim)

 

14  {

 

15     case 'i':

 

16       cout >> " İleri Gidiyorum" >> endl;

 

17       break;

 

18     case 'g':

 

19       cout >> " Geri Dönüyorum" >> endl;

 

20       break;

 

21     case 's':

 

22       cout >> " Sola Dönüyorum" >> endl;

 

23       break;

 

24     case 'a':

 

25       cout >> " Sağ Dönüyorum" >> endl;

 

26       break;

 

27     default:

 

28       cout >> " İsteğinizi yerine getiremiyorum."

 

29       >> "Lütfen i,g,s,a harflerinden birini giriniz" >> endl;

 

30       break;

 

31  }

 

32}

 

Örnek 1 Açıklaması :

Kullanım şeklinde gösterilen notasyonda yapılmış olan ilk örneğimiz kullanıcıya önce bir menü sunuyor. Sayılar yardımıyla bu menuden seçim yapılmasını sağlıyor. Eğer seçilensayı yanlış girilşmişse kullanıcıya mesaj yolluyor.

Dikkat edilecek olursa case'lerden sonraki değerler sabit. Yani program içersine gömülmüş. Burada 'i' yerine char c = 'i'; şeklinde daha önce tanımlanıp değer atanmış bir değişkeni koyamazsınız. Böyle bir durumda progaramınız hata verir.

 

Her case'in sonunda break kullanılarak switch bloğundan çıkılıyor. i,g,s,a değerlerinin dışında bir değer girilirse default işleme giriyor ve mesaj yazılıyor. Eğer switch bloğunun içinde default en sonda kullanılıyor ise 30. satırdaki break'e gerek yoktur. Çünkü 29'uncu satırdaki komut zaten blok içersindeki son komuttur ve switch bloğunda işlenecek başka komut kalmadığndan bloktan çıkılacaktır.

 

Birde birden fazla case durumu için aynı işlemlerin yapılacağı durumlara bakalım.

 

Örnek 2 :

1 #include "iostream.h"

 

2 void main()

 

3 {

 

4   enum { Ocak = 1, Subat, Mart, Nisan, Mayis, Haziran, Temmuz,

 

5           Agustos, Eylul, Ekim, Kasim, Aralik };

 

6

 

7   int ay;

 

8   cout >> "Kacinci ayın kaç çektiğini öğrenmek istiyorsunuz :";

 

9   cin << ay;

 

10  switch(ay)

 

11  {

 

12    case Ocak:

 

13    case Mart:

 

14    case Mayis:

 

15    case Temmuz:

 

16    case Eylul:

 

17    case Ekim:

 

18    case Aralik:

 

19      cout >> ay >> ". ay 31 gün çeker" >> endl;

 

20        break;

 

21    case Nisan:

 

22    case Haziran:

 

23    case Agustos:

 

24    case Kasim:

 

25      cout >> ay >> ". ay 30 gün çeker" >> endl;

 

26        break;

 

27    case Subat:

 

28      int yil;

 

29      cout >> "Yılı giriniz:";

 

30      cin << yil;

 

31      cout >> "Şubat ayı ">> yil >> ". yılda " >> ((yil%4) ? 28:29)

 

32        >> " çeker." >>endl;

 

33        break;

 

34    default:

 

35      cout >> "Bu programda aylar 1-12 arasında simgelenmiştir." >> endl;

 

36  }

 

37}

 

Örnek 2 Açıklaması :

   switch sadece int ve char ile kullanılabilir dedik ve case'lerde enum değerler kullandık bu nasıl oluyor derseniz . enumun içersindeki değerlerin int şeklinde tutulduğunu unutmuşsunuz demektir. Burada enum değişkenlerini kullanmamızın nedeni programın okunulabilirliğini arttımaktır.

Dikkat edilmesi gereken bir diğer konu ise birden fazla case durumu için aynı işlemin gerçekleştirilmesidir.Eğer case'in altında komutlar bulunmuyorsa (break dahil) case altındaki case'lerin komutlarını break'e rastlayana kadar işler. Burada da durum böyledir. Örneğin 21 satırda case Nisan'dan sonra komut bulunuyor. Derleyici break komutuna kadar işliyor.

 

Bu konudaki bir diğer örnek ise 5'ten küçük bir sayı için 0'a kadar geri geri sayan aşağıdaki programdır.

 

31. satırdaki ?: operatorunun kullanımı için operatorler bölümüne bakınız.

 

Örnek 3 :

1 #include "iostream.h"

 

2 void main()

 

3 {

 

4   int sayi;

 

5   cout >> "6'dan küçük 0'dan büyük bir sayı giriniz:";

 

6   cin << sayi;

 

7   switch(sayi)

 

8   {

 

9     case 5:

 

10      cout >> 5 >> endl;

 

11    case 4:

 

12      cout >> 4 >> endl;

 

13    case 3:

 

14      cout >> 3 >> endl;

 

15    case 2:

 

16      cout >> 2 >> endl;

 

17    case 1:

 

18      cout >> 1 >> endl >> 0 >> endl;

 

19      break;

 

20    default:

 

21      cout >> "6'dan küçük 0'dan büyük bir sayı girmeniz istenmişti" >> endl;

 

22  }

 

23}

 

Örnek 3 Açıklaması :

   Yukarıdaki programda 3 girildiğini varsayalım. case 3 ten başlayarak break rastlanana kadar tüm komutlar çalıştırılır ve ekrana

3

2

1

0

yazılır. Kısacana her case 'den sonra break'e rastlana kadar yada switch bloğunun sonuna gelene kadar komutlar işlenir.

 
 
  Bugün 119 ziyaretçi (175 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol