If fungerar inte särskilt bra om man vill särskilja ett större antal värden. Givetvis kan man då skriva en mängd if-satser men det blir lite "klumpigt" och rörigt. I sådana fall är det lämpligare att använda sig av switch. Nedan ser du principen för switch.

 

switch(variabel)
{
  case variabelvärde 1: sats;
                        break;
  case variabelvärde 2: sats;
                        break;
  -
  -
  case variabelvärde n: sats;
                        break
  default: sats;
}


 

Givetvis kan man till varje case koppla ett block med satser eller funktionsanrop. Viktigt är dock att break finns med sist i varje case. Break gör att du lämnar switch när relevant case har körts. Saknas break körs satserna i nästa case, och nästa, ända tills break hittas eller alla satser gåtts igenom.

Vi tar nu ett simpelt exempel
 

 Exempel 9.1

			  
 #include <iostream>

 using namespace std;

 int main()
 {
   cout<<"Ange en siffra mellan 0 - 9"<<endl;
   char siffra;
   cin>>siffra;
   switch(siffra)
   {
    case '0': cout<<"En nolla!"<<endl;
              break;
    case '1': cout<<"En etta!"<<endl;
              break;
    case '2': cout<<"En tvåa!"<<endl;
              break;
    case '3': cout<<"Bara tre?"<<endl;
              cout<<"Öka med 1 och få.. ."<<endl;
              //OBS ingen break
    case '4': cout<<"En fyra!"<<endl;
              break;
    case '5': cout<<"En femma!"<<endl;
              break;
    case '6': cout<<"En sexa!"<<endl;
              break;
    case '7': cout<<"En sjua!"<<endl;
              break;
    case '8': cout<<"En åtta!"<<endl;
              break;
    case '9': cout<<"En nia!"<<endl;
              break;
     default: cout<<"Svåra instruktioner?"<<endl;
              cout<<"Du angav ej en siffra"<<endl;
    }
  return 0;
 }
 
© Stockholms Stad 2001