Het switch-statement

Het switch-statement wordt gebruikt wanneer je een groot aantal if-statements achter elkaar moet plaatsen.


Voorbeeld
Stel dat je dag van de week hebt opgeslagen als een heel getal (1 t/m 7) in de variabele dag. Je zou dan de onderstaande code kunnen schrijven voor het tonen van de naam van de dag in de applet.

1    if(dag == 1) {
2        daglabel.setText("maandag");
3    } else if(dag == 2) {
4        daglabel.setText("insdag");
5    } else if(dag == 3) {
6        dagLabel.setText("woensdag");
7    } else if(dag == 4) {
8        dagLabel.setText("donderdag");
9    } else if(dag == 5) {
10       dagLabel.setText("vrijdag");
11   } else if(dag == 6) {
12       dagLabel.setText("zaterdag");
13   } else if(dag == 7) {
14       dagLabel.setText("zondag");
15   } else {
16       dagLabel.setText("Geen geldig nummer");
17   }

 

Je krijgt een groot aantal keer else-if constructies onder elkaar en de code is daardoor minder overzichtelijk. Met het switch-statement wordt de structuur van de code duidelijker.
 

Voorbeeld van een switch-statement


1 switch(dag) {
2     case 1: dagLabel.setText("maandag");
3             break;
4     case 2: dagLabel.setText("dinsdag");
5             break;
6     case 3: dagLabel.setText("woensdag");
7             break;
8     case 4: dagLabel.setText("donderdag");
9             break;
10    case 5: dagLabel.setText("vrijdag");
11            break;
12    case 6: dagLabel.setText("zaterdag");
13            break;
14    case 7: dagLabel.setText("zondag");
15            break;
16    default:dagLabel.setText("Geen geldig nummer");
17 }

 

Een switch-statement begint altijd met het woord switch. Daarachter staat, tussen haakjes, variabele die je wilt vergelijken. Deze variabele wordt vervolgens vergelijken met alle constanten die staan achter het keyword case (bijvoorbeeld op regel 2). Als de variabele en de constante met elkaar overeenkomen dat wordt de code achter de dubbele punt uitgevoerd. Met het keyword break beeindig je de verdere uitvoering van het switch-statement. Schrijf je deze statement niet dan blijft het switch-statement door gaan van het controleren van alle cases. Meestal wil je dat niet. Met het keyword default geef je aan wat er moet gebeuren als er geen match is geweest met een van de cases.