Switch

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