switch als expressie
Geef waarden terug vanuit switch
switch als expressie is een gratis Java Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Java Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Java Academy bevat in totaal 4 lessen.
Instructies versus expressies
Een instructie voert een actie uit. Een expressie levert een waarde op. Met modern Java kan switch een expressie zijn, zodat je het resultaat rechtstreeks aan een variabele kunt toewijzen.
Een switch-resultaat toewijzen
Wanneer switch rechts van = staat, levert elke tak de waarde. De vorm met pijlen geeft de waarde na -> automatisch terug.
public class Main {
public static void main(String[] args) {
int day = 6;
String type = switch (day) {
case 6, 7 -> "Weekend";
default -> "Weekday";
};
System.out.println(type);
}
}Puntkomma na het blok
Omdat een switch-expressie deel uitmaakt van een instructie, eindigt deze na de afsluitende accolade met een puntkomma. Als je die vergeet, ontstaat er vaak een compilatiefout.
public class Main {
public static void main(String[] args) {
int n = 2;
int doubled = switch (n) {
case 1 -> 2;
case 2 -> 4;
default -> 0;
};
System.out.println(doubled);
}
}Volledigheid
Een switch-expressie moet elke mogelijke waarde afdekken. Voor de meeste typen betekent dit dat je een default-tak moet opnemen; anders wordt de code niet gecompileerd.
public class Main {
public static void main(String[] args) {
int score = 85;
char grade = switch (score / 10) {
case 10, 9 -> 'A';
case 8 -> 'B';
case 7 -> 'C';
default -> 'F';
};
System.out.println(grade);
}
}Enumtypen hebben geen default nodig
Wanneer je over een enum schakelt en elke constante afdekt, weet de compiler dat de expressie volledig is. Een default-tak wordt dan optioneel.
public class Main {
enum Dir { NORTH, SOUTH, EAST, WEST }
public static void main(String[] args) {
Dir d = Dir.EAST;
String label = switch (d) {
case NORTH -> "Up";
case SOUTH -> "Down";
case EAST -> "Right";
case WEST -> "Left";
};
System.out.println(label);
}
}Rechtstreeks teruggeven
Een methode kan een switch-expressie rechtstreeks met return teruggeven, waardoor korte opzoekmethoden ontstaan.
public class Main {
static int sides(String shape) {
return switch (shape) {
case "triangle" -> 3;
case "square" -> 4;
case "pentagon" -> 5;
default -> 0;
};
}
public static void main(String[] args) {
System.out.println(sides("square"));
}
}Numerieke resultaten
Takken kunnen getallen teruggeven, berekeningen uitvoeren of methoden aanroepen. Elke tak moet een waarde opleveren van hetzelfde type als de variabele waaraan je die toewijst.
public class Main {
public static void main(String[] args) {
int month = 2;
int days = switch (month) {
case 2 -> 28;
case 4, 6, 9, 11 -> 30;
default -> 31;
};
System.out.println("Days: " + days);
}
}Het resultaat direct gebruiken
De waarde van een switch-expressie kan direct worden gebruikt, bijvoorbeeld binnen een aanroep van println.
public class Main {
public static void main(String[] args) {
int code = 1;
System.out.println("Status: " + switch (code) {
case 0 -> "OK";
case 1 -> "Warning";
default -> "Error";
});
}
}Consistent type
Alle takken moeten hetzelfde resultaattype hebben. Als de ene tak een int teruggeeft en een andere een String, wordt de code niet gecompileerd. Houd de takken consistent.
public class Main {
public static void main(String[] args) {
int n = 3;
double factor = switch (n) {
case 1 -> 0.5;
case 2 -> 1.0;
default -> 1.5;
};
System.out.println(factor);
}
}Ketens van ternaire operatoren vervangen
Een switch-expressie leest vaak duidelijker dan geneste ternaire operatoren wanneer je één waarde naar meerdere resultaten omzet.
public class Main {
public static void main(String[] args) {
int rating = 4;
String stars = switch (rating) {
case 1 -> "*";
case 2 -> "**";
case 3 -> "***";
case 4 -> "****";
default -> "*****";
};
System.out.println(stars);
}
}Combineren met variabelen
Je kunt het resultaat van een switch-expressie gebruiken in verdere berekeningen, net als elke andere waarde.
public class Main {
public static void main(String[] args) {
int tier = 2;
int discount = switch (tier) {
case 1 -> 5;
case 2 -> 10;
default -> 0;
};
int price = 100 - discount;
System.out.println("Price: " + price);
}
}Korte controle
Waarom moet een switch-expressie meestal een default-tak bevatten?
Samenvatting
Je hebt geleerd om switch als expressie te gebruiken:
- De expressie levert een waarde op die je kunt toewijzen of teruggeven
- Beëindig de toewijzing met een puntkomma
- De expressie moet volledig zijn (meestal is
defaultnodig) - Enumtypen waarvan alle constanten zijn afgedekt hebben geen
defaultnodig - Alle takken moeten hetzelfde resultaattype hebben
Leer Java met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 104
- Lessen
- 374
Veelgestelde vragen
Is de les “switch als expressie” gratis?
Ja — de volledige tekst van “switch als expressie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Java Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Java Academy bevat in totaal 4 lessen.
Wat leer ik in “switch als expressie”?
Geef waarden terug vanuit switch Je oefent met Java Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Java Academy te beginnen?
Ervaring vooraf is niet nodig. Java Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “switch als expressie”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Java Academy?
Ja. Elke les over Java Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Pijlnotatie voor switch
- switch als expressie
- Het sleutelwoord yield
- Cases met meerdere labels