Het switch-statement wordt gebruikt wanneer je een groot aantal if-statements achter elkaar moet schrijven. Stel dat de dag van de week is opgeslagen in een variabele dag van het type int met een van de waarden 1 tot en met 7 voor de dagen maandag tot en met zondag:
if(dag == 1)
dagLabel.setText(“maandag”);
else if(dag == 2)
dagLabel.setText(“dinsdag”);
else if(dag == 3)
dagLabel.setText(“woensdag”);
else if(dag == 4)
dagLabel.setText(“donderdag”);
else if(dag == 5)
dagLabel.setText(“vrijdag”);
else if(dag == 6)
dagLabel.setText(“zaterdag”);
else if(dag == 7)
dagLabel.setText(“zondag”);
else
dagLabel.setText(“Geen geldig dagnummer”);
Je krijgt een groot aantal keer else onder elkaar en de code is minder overzichtelijk.
Met het switch-statement wordt de structuur van de code duidelijker:
switch(dag) {
case 1: dagLabel.setText(“maandag”); break;
case 2: dagLabel.setText(“dinsdag”); break;
case 3: dagLabel.setText(“woensdag”); break;
case 4: dagLabel.setText(“donderdag”); break;
case 5: dagLabel.setText(“vrijdag”); break;
case 6: dagLabel.setText(“zaterdag”); break;
case 7: dagLabel.setText(“zondag”); break;
default: dagLabel.setText(“Geen geldig dagnummer”);
}
Een switch-statement begint altijd met het woord switch.
Daarachter staat tussen haakjes de switch-expressie, in dit geval de variabele dag. In principe moet de variabele van het type int of char zijn. De waarde van dag wordt vergeleken met de constanten die achter case staan. Hij moet van hetzelfde type zijn als de switch-expressie. Als die waarde gelijk is worden alle statements achter de dubbele punt na case uitgevoerd. Het woord break betekent: beëindig de uitvoering van het switch-statement. Als de waarde van dag niet gelijk is aan een van de constanten achter case, worden de statements achter default uitgevoerd. Overigens is het niet verplicht om de default-label te gebruiken.