Switch-Case-Setning
Håndtering av flere ulike betingelser
Når vi har mange betingelser å sjekke, er det ikke alltid hensiktsmessig å 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 ser at dette ikke fremstår som 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 kan se hvordan 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-setning.
La oss se på skjemaet for switch-case-blokken:
Som vi ser, 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 break-nøkkelordet 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.
La oss se på 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 nøkkelordet break?
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
Can you explain the difference between the classic and new switch syntax in Java?
What happens if I forget to use the break statement in a switch-case?
Can you give more examples of when to use switch-case instead of if-else?
Fantastisk!
Completion rate forbedret til 2.7
Switch-Case-Setning
Sveip for å vise menyen
Håndtering av flere ulike betingelser
Når vi har mange betingelser å sjekke, er det ikke alltid hensiktsmessig å 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 ser at dette ikke fremstår som 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 kan se hvordan 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-setning.
La oss se på skjemaet for switch-case-blokken:
Som vi ser, 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 break-nøkkelordet 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.
La oss se på 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 nøkkelordet break?
Takk for tilbakemeldingene dine!