Switch med pilsyntaks
Bruk den moderne switch-pilsyntaksen
Switch med pilsyntaks er en gratis leksjon i Java Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Java Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Java Academy inneholder totalt 4 leksjoner.
Problemet med den gamle switch-syntaksen
Den klassiske Java-switch-setningen brukte etiketter med kolon og krevde break etter hver case. Hvis De glemte break, oppsto fall-through-feil, der kjøringen fortsatte inn i neste case.
Moderne Java (14+) introduserer pilsyntaksen, som løser dette fullstendig.
Grunnleggende om pilsyntaks
Med pilbasert switch bruker hver etikett -> i stedet for :. Det finnes ingen fall-through, og break er ikke nødvendig. Hver gren kjører bare sin egen kode.
public class Main {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1 -> System.out.println("Monday");
case 3 -> System.out.println("Wednesday");
default -> System.out.println("Other day");
}
}
}Slutt på break
I den gamle skrivemåten måtte De skrive break; etter hver case. Den pilbaserte formen fjerner dette behovet fullstendig. Bare den samsvarende grenen kjøres.
public class Main {
public static void main(String[] args) {
char grade = 'B';
switch (grade) {
case 'A' -> System.out.println("Excellent");
case 'B' -> System.out.println("Good");
case 'C' -> System.out.println("Average");
default -> System.out.println("Needs work");
}
}
}Blokker som grenkropper
Når en gren trenger mer enn én setning, pakker De den inn i krøllparenteser { }. Blokken kan inneholde et hvilket som helst antall setninger.
public class Main {
public static void main(String[] args) {
int code = 2;
switch (code) {
case 2 -> {
System.out.println("Processing code 2");
System.out.println("Done");
}
default -> System.out.println("Unknown");
}
}
}switch med String-verdier
Den pilbaserte switch fungerer med String-verdier akkurat som den gamle skrivemåten. Sammenligninger bruker equals internt, så de skiller mellom store og små bokstaver.
public class Main {
public static void main(String[] args) {
String fruit = "apple";
switch (fruit) {
case "apple" -> System.out.println("Red or green");
case "banana" -> System.out.println("Yellow");
default -> System.out.println("Unknown fruit");
}
}
}default-grenen
default-grenen håndterer alle verdier som ikke dekkes av de andre casene. Det er god praksis å alltid ta med en, slik at uventede inndata håndteres på en kontrollert måte.
public class Main {
public static void main(String[] args) {
int level = 99;
switch (level) {
case 1 -> System.out.println("Beginner");
case 2 -> System.out.println("Intermediate");
default -> System.out.println("Unknown level: " + level);
}
}
}switch med enum
Den pilbaserte switch passer perfekt sammen med enum-typer. De kan utelate enum-navneprefikset i hver etikett, slik at grenene blir korte og ryddige.
public class Main {
enum Color { RED, GREEN, BLUE }
public static void main(String[] args) {
Color c = Color.GREEN;
switch (c) {
case RED -> System.out.println("Stop");
case GREEN -> System.out.println("Go");
case BLUE -> System.out.println("Calm");
}
}
}Kall av metoder i grener
Hver pilgren kan kalle en hvilken som helst metode. Slik forblir switch-koden lett å lese, mens det egentlige arbeidet delegeres til andre steder.
public class Main {
static void greet(String who) {
System.out.println("Hello, " + who);
}
public static void main(String[] args) {
int who = 1;
switch (who) {
case 1 -> greet("Alice");
case 2 -> greet("Bob");
default -> greet("Stranger");
}
}
}Ryddigere enn if-else
En pilbasert switch kan ofte erstatte lange if-else-kjeder. Når De sammenligner én variabel med mange faste verdier, er switch tydeligere å lese.
public class Main {
public static void main(String[] args) {
int month = 4;
switch (month) {
case 12, 1, 2 -> System.out.println("Winter");
case 3, 4, 5 -> System.out.println("Spring");
case 6, 7, 8 -> System.out.println("Summer");
default -> System.out.println("Autumn");
}
}
}Bare bivirkninger
En switch-setning (her brukt i pilform) utfører handlinger, men produserer ingen verdi. Hvis De vil returnere en verdi, bruker De et switch-uttrykk, som gjennomgås i neste leksjon.
public class Main {
public static void main(String[] args) {
int n = 5;
switch (n % 2) {
case 0 -> System.out.println(n + " is even");
case 1 -> System.out.println(n + " is odd");
}
}
}Flere verdier, én gren
Flere verdier kan dele en gren ved at De skiller dem med komma. Dette er en introduksjon til case-grener med flere etiketter, som gjennomgås senere.
public class Main {
public static void main(String[] args) {
char c = 'e';
switch (c) {
case 'a', 'e', 'i', 'o', 'u' -> System.out.println("Vowel");
default -> System.out.println("Consonant");
}
}
}Kort kontrollspørsmål
Hva er den viktigste fordelen med pilbasert switch sammenlignet med den gamle skrivemåten med kolon?
Oppsummering
De har lært den moderne pilbaserte switch-syntaksen:
- Bruk
->i stedet for: - Ingen fall-through, og
breaker ikke nødvendig - Bruk krøllparenteser
{ }for grener med flere setninger - Skill etiketter med komma for å dele en gren
- Ta alltid med en
default-gren
Lær deg Java med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 104
- Leksjoner
- 374
Ofte stilte spørsmål
Er leksjonen «Switch med pilsyntaks» gratis?
Ja – hele teksten i «Switch med pilsyntaks» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Java Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Java Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Switch med pilsyntaks»?
Bruk den moderne switch-pilsyntaksen Du øver på Java Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Java Academy?
Ingen tidligere erfaring er nødvendig. Java Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Switch med pilsyntaks»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Java Academy-leksjonen?
Ja. Alle Java Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Switch med pilsyntaks
- switch som uttrykk
- yield-nøkkelordet
- Tilfeller med flere etiketter