Switch Operatörü

İfade değerini tüm 'case' varyantlarındaki sabitlerle karşılaştırır ve kontrolü ifade değerine karşılık gelen operatöre geçirir. Her bir case varyantı, bir tamsayı sabit, bir sözlü sabit veya bir ifade ile işaretlenebilir. Sabit ifade, değişkenleri ve fonksiyon isimlerini içeremez. Switch operatörünün ifadesi tamsayı tipinde olmalıdır – int veya uint.

switch(ifade)
  {
   case sabit: operatörler
   case sabit: operatörler
     ... 
   default: operatörler
  }

Eğer case operatörleri içindeki sabitlerden hiçbiri ifade değerine eşit değilse, default etiketi ile imlenen operatörler çalıştırılır. default varyantının bildirilmesi veya sonda yer alması gerekli değildir. İfade değerine ve default varyantına karşılık gelen sabitlerin hiçbiri mevcut değilse, hiçbir eylem gerçekleştirilmez.

Sabit içeren 'case' anahtar sözcüğü sadece bir etikettir ve eğer operatörler bazı 'case' varyantları için çalıştırılırsa, takip eden tüm varyantların operatörleri break operatörü gelene kadar çalıştırılır. Bu, bir dizi operatörün birkaç varyantla bağlanmasını sağlar.

Derleme süresince bir sabit ifade hesaplanır. Bir switch operatörü içindeki iki sabit aynı değeri alamaz.

Örnekler:

//--- İlk örnek
switch(x)
  {
   case 'A':
      Print("DURUM A");
      break;
   case 'B':
   case 'C':
      Print("CASE B veya C");
      break;
   default:
      Print("A, B veya C DEĞİL");
      break;
  }
 
//---  İkinci örnek
   string res="";
   int i=0;
   switch(i)
     {
      case 1:
         res=i;break;
      default:
         res="default";break;
      case 2:
         res=i;break;
      case 3:
         res=i;break;
     }
   Print(res);
/*
   Result
   default
*/

Ayrıca Bakınız

Değişkenlerin Başlatılması, Değişkenlerin Görünürlük Alanları ve Ömürleri, Nesnelerin Yaratılması ve Silinmesi