Switch-Case-setning
Sveip for å vise menyen
Håndtering av flere ulike betingelser
Når vi har mange betingelser å sjekke, er det ikke alltid praktisk å bruke flere if-else kjeder.
For eksempel:
Main.java
12345678910111213141516171819package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Vi kan se at dette ikke virker ryddig og profesjonelt. For slike tilfeller tilbyr Java switch-case-setningen.
switch-case-setning
switch-case-setningen består av flere deler:
Main.java
123456789switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
I koden ovenfor kan du se at vi bruker switch-blokker for selektiv utførelse av operasjoner. Vi baserer oss på uttrykket, som er litt annerledes enn en betingelse. Her setter vi inn en verdi eller et uttrykk. For eksempel, 10 / 2. I dette tilfellet vil case-blokken med signaturen case 5 bli utført fordi uttrykket ovenfor er lik 5.
Vi kan også bruke en betingelse her. Da må vi skrive et boolsk uttrykk i uttrykksblokken, og det bør se slik ut: 10 / 2 == 5. Skriv deretter to cases under:
case true:
case false:
Men denne strukturen vil være nesten identisk med en vanlig if-else.
Nøkkelordet "break"
Dette nøkkelordet brukes for å avslutte utførelsen av en switch-case-setning og forlate dens blokk. Dette ordet brukes ofte i løkker, som vi skal diskutere i de neste kapitlene. Bruk dette nøkkelordet når du trenger å bryte ut av en kodeblokk og stoppe dens utførelse.
La oss nå forbedre koden vi skrev ovenfor ved å bruke switch-case-setningen:
Main.java
123456789101112131415161718192021222324package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
Vi ser at koden har blitt mye ryddigere og enklere å lese og utvide. Vi trenger ikke å skrive en ny if-setning fra bunnen av hvis vi må legge til flere betingelser. I stedet kan vi legge til en ny case-blokk i vår switch-case statement.
La oss se på skjemaet for switch-case-blokken:
Som vi kan se, kan det være så mange case-blokker vi ønsker. Hver case krever sin egen betingelse og kode, som vil bli utført når programmet vårt går inn i case-blokken.
Det anbefales å bruke nøkkelordet break fordi programmet ikke vil forlate switch-blokken før alle case-blokkene er utført. Default-blokken vil bli utført hvis vi ikke gikk inn i noen av case-blokkene eller ikke brukte break-nøkkelordet.
Her er et annet eksempel uten break-nøkkelord:
Main.java
1234567891011121314151617181920package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
Vi har mottatt flere verdier som skiller seg fra det vi forventet. I tillegg fikk vi informasjon fra blokkene case 10 og default. Dette er nettopp grunnen til at vi bruker nøkkelordet break etter hver blokk. På denne måten vil programmet avslutte switch-setningen og fortsette utførelsen.
1. Hva vil bli skrevet ut til konsollen?
2. Hvorfor trenger vi break-nøkkelordet?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår