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;
}