Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Switch-Case-Sætning | Grundlæggende Typer og Operationer
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Java Grundlæggende

bookSwitch-Case-Sætning

Håndtering af flere forskellige betingelser

Når der er mange betingelser, der skal kontrolleres, er det ikke altid hensigtsmæssigt at bruge flere if-else kæder.

For eksempel:

Main.java

Main.java

copy
12345678910111213141516171819
package 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 fremstår overskueligt eller professionelt. Til sådanne tilfælde tilbyder Java switch-case-sætningen.

switch-case-sætning

switch-case-sætningen består af flere dele:

Main.java

Main.java

copy
123456789
switch (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 ses det, at switch-blokke anvendes til selektiv udførelse af operationer. Her benyttes et udtryk, hvilket adskiller sig en smule fra en betingelse. I dette tilfælde indsættes en værdi eller et udtryk, for eksempel 10 / 2. Her vil case-blokken med signaturen case 5 blive udført, da udtrykket ovenfor er lig med 5.

Det er også muligt at anvende en betingelse her. I så fald skal der skrives et boolesk udtryk i udtryksblokken, hvilket kan se således ud: 10 / 2 == 5. Derefter skrives to cases nedenfor:

case true:
  
case false:

Denne struktur vil dog næsten ikke kunne skelnes fra en almindelig if-else.

Nøgleordet "break"

Dette nøgleord anvendes til at afslutte udførelsen af en switch-case-sætning og forlade dens blok. Ordet bruges ofte i løkker, hvilket gennemgås i de følgende kapitler. Anvend dette nøgleord, når det er nødvendigt at afbryde en kodeblok og stoppe dens udførelse.

Lad os nu forbedre koden, vi skrev ovenfor, ved at bruge switch-case-sætningen:

Main.java

Main.java

copy
123456789101112131415161718192021222324
package 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 er blevet meget mere overskuelig og lettere at læse og udvide. Vi behøver ikke at skrive endnu en if-sætning fra bunden, hvis vi skal tilføje flere betingelser. I stedet kan vi tilføje endnu et case-blok til vores switch-case statement.

Lad os se på skemaet for switch-case blokken:

Som vi kan se, kan der være så mange cases, som vi ønsker. Hver case kræver sin egen betingelse og kode, som vil blive udført, når vores program går ind i case-blokken. Det anbefales at bruge break-nøgleordet, fordi programmet ikke forlader switch-blokken, før alle case-blokke er blevet udført. Default-blokken vil blive udført, hvis vi ikke gik ind i nogen af vores case-blokke eller ikke brugte break-nøgleordet.

Lad os se på et andet eksempel uden break-nøgleord:

Main.java

Main.java

copy
1234567891011121314151617181920
package 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 modtaget flere værdier, som adskiller sig fra det forventede. Derudover har vi fået information fra blokkene case 10 og default. Det er netop derfor, vi bruger nøgleordet break efter hver blok. På denne måde forlader programmet switch-sætningen og fortsætter sin eksekvering.

1. Hvad vil blive vist i konsollen?

2. Hvorfor har vi brug for nøgleordet break?

question mark

Hvad vil blive vist i konsollen?

Select the correct answer

question mark

Hvorfor har vi brug for nøgleordet break?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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?

bookSwitch-Case-Sætning

Stryg for at vise menuen

Håndtering af flere forskellige betingelser

Når der er mange betingelser, der skal kontrolleres, er det ikke altid hensigtsmæssigt at bruge flere if-else kæder.

For eksempel:

Main.java

Main.java

copy
12345678910111213141516171819
package 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 fremstår overskueligt eller professionelt. Til sådanne tilfælde tilbyder Java switch-case-sætningen.

switch-case-sætning

switch-case-sætningen består af flere dele:

Main.java

Main.java

copy
123456789
switch (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 ses det, at switch-blokke anvendes til selektiv udførelse af operationer. Her benyttes et udtryk, hvilket adskiller sig en smule fra en betingelse. I dette tilfælde indsættes en værdi eller et udtryk, for eksempel 10 / 2. Her vil case-blokken med signaturen case 5 blive udført, da udtrykket ovenfor er lig med 5.

Det er også muligt at anvende en betingelse her. I så fald skal der skrives et boolesk udtryk i udtryksblokken, hvilket kan se således ud: 10 / 2 == 5. Derefter skrives to cases nedenfor:

case true:
  
case false:

Denne struktur vil dog næsten ikke kunne skelnes fra en almindelig if-else.

Nøgleordet "break"

Dette nøgleord anvendes til at afslutte udførelsen af en switch-case-sætning og forlade dens blok. Ordet bruges ofte i løkker, hvilket gennemgås i de følgende kapitler. Anvend dette nøgleord, når det er nødvendigt at afbryde en kodeblok og stoppe dens udførelse.

Lad os nu forbedre koden, vi skrev ovenfor, ved at bruge switch-case-sætningen:

Main.java

Main.java

copy
123456789101112131415161718192021222324
package 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 er blevet meget mere overskuelig og lettere at læse og udvide. Vi behøver ikke at skrive endnu en if-sætning fra bunden, hvis vi skal tilføje flere betingelser. I stedet kan vi tilføje endnu et case-blok til vores switch-case statement.

Lad os se på skemaet for switch-case blokken:

Som vi kan se, kan der være så mange cases, som vi ønsker. Hver case kræver sin egen betingelse og kode, som vil blive udført, når vores program går ind i case-blokken. Det anbefales at bruge break-nøgleordet, fordi programmet ikke forlader switch-blokken, før alle case-blokke er blevet udført. Default-blokken vil blive udført, hvis vi ikke gik ind i nogen af vores case-blokke eller ikke brugte break-nøgleordet.

Lad os se på et andet eksempel uden break-nøgleord:

Main.java

Main.java

copy
1234567891011121314151617181920
package 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 modtaget flere værdier, som adskiller sig fra det forventede. Derudover har vi fået information fra blokkene case 10 og default. Det er netop derfor, vi bruger nøgleordet break efter hver blok. På denne måde forlader programmet switch-sætningen og fortsætter sin eksekvering.

1. Hvad vil blive vist i konsollen?

2. Hvorfor har vi brug for nøgleordet break?

question mark

Hvad vil blive vist i konsollen?

Select the correct answer

question mark

Hvorfor har vi brug for nøgleordet break?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6
some-alt