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
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 kan du se, at vi bruger switch-blokke til selektivt at udføre operationer. Vi baserer os på udtrykket, som adskiller sig en smule fra en betingelse. Her indsætter vi en værdi eller et udtryk. For eksempel, 10 / 2. I dette tilfælde vil case-blokken med signaturen case 5 blive udført, fordi udtrykket ovenfor er lig med 5.

Vi kan også bruge en betingelse her. I så fald skal vi skrive et boolesk udtryk i udtryksblokken, og det skal se sådan ud: 10 / 2 == 5. Skriv derefter to cases nedenfor:

case true:
  
case false:

Men denne struktur vil næsten ikke kunne skelnes fra en almindelig if-else.

Nøgleordet "break"

Dette nøgleord bruges til at afslutte udførelsen af en switch-case-sætning og forlade dens blok. Dette ord bruges ofte i løkker, som vi vil gennemgå i de følgende kapitler. Brug dette nøgleord, når du har behov for at bryde ud af en kodeblok og stoppe dens udførelse.

Lad os nu forbedre den kode, 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 yderligere 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-blokkene er blevet udført. Default-blokken vil blive udført, hvis vi ikke er gået ind i nogen af vores case-blokke eller ikke har brugt 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, vi 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 udførelse.

1. Hvad vil blive udskrevet til konsollen?

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

question mark

Hvad vil blive udskrevet til 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

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 kan du se, at vi bruger switch-blokke til selektivt at udføre operationer. Vi baserer os på udtrykket, som adskiller sig en smule fra en betingelse. Her indsætter vi en værdi eller et udtryk. For eksempel, 10 / 2. I dette tilfælde vil case-blokken med signaturen case 5 blive udført, fordi udtrykket ovenfor er lig med 5.

Vi kan også bruge en betingelse her. I så fald skal vi skrive et boolesk udtryk i udtryksblokken, og det skal se sådan ud: 10 / 2 == 5. Skriv derefter to cases nedenfor:

case true:
  
case false:

Men denne struktur vil næsten ikke kunne skelnes fra en almindelig if-else.

Nøgleordet "break"

Dette nøgleord bruges til at afslutte udførelsen af en switch-case-sætning og forlade dens blok. Dette ord bruges ofte i løkker, som vi vil gennemgå i de følgende kapitler. Brug dette nøgleord, når du har behov for at bryde ud af en kodeblok og stoppe dens udførelse.

Lad os nu forbedre den kode, 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 yderligere 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-blokkene er blevet udført. Default-blokken vil blive udført, hvis vi ikke er gået ind i nogen af vores case-blokke eller ikke har brugt 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, vi 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 udførelse.

1. Hvad vil blive udskrevet til konsollen?

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

question mark

Hvad vil blive udskrevet til 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