Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Switch, Break | Styrsatser
C-Grunder

bookSwitch, Break

Användning av switch-satsen

Föreställ dig att du köper en läsk från en varuautomat. När du väljer din önskade dryck, får variabeln user_input ett av flera fördefinierade värden djupt inne i automatens dator. Var och en av dessa alternativ kallas ett case, och det är här switch-satsen används.

Tänk på switch-satsen som en annan version av if-else-satsen. Den agerar utifrån specifika värden som du tidigare har definierat.

Så här ser strukturen för en switch-sats ut:

main.c

main.c

copy
1234567891011121314151617
switch (integer_expression) { case first_case_value: // Instruction for this case break; case second_case_value: // Instruction for this case break; case third_case_value: // Instruction for this case break; default: // Default instruction }

Tänk på ett exempel med en varuautomat. Antag att det finns tre knappar för att välja olika typer av chips:

  • Ostsmakade chips;
  • Baconsmakade chips;
  • Chilis smakade chips.
Main.c

Main.c

copy
123456789101112131415161718192021222324
#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }

Om det testade uttrycket inte matchar något av de listade fallen, körs default-fallet. Om inget default-fall anges, fortsätter programmet helt enkelt sitt flöde.

Note
Observera

Det testade uttrycket i ett switch-uttryck kan endast vara av typen heltal eller char. Du kan inte använda strängar eller icke-heltal som case-värden.

Main.c

Main.c

copy
12345678910111213141516171819202122232425
#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }

Brytningens roll

Kommandot break stoppar körningen av det aktuella blocket och går vidare till nästa kodsegment. När det relevanta fallet är klart lämnar du alltså blocket och fortsätter med programmet.

Utan kommandot break skulle switch-uttrycket fortsätta köra, vilket sannolikt leder till oavsiktliga resultat.

Main.c

Main.c

copy
123456789101112131415161718192021222324
#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }

Om break-kommandot saknas börjar programmet att exekvera direkt efter att ett matchande case har hittats och fortsätter tills det hittar ett break eller når slutet av switch-satsen.

question mark

Vad är huvudsyftet med break-satsen inuti ett switch-block?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.63

bookSwitch, Break

Svep för att visa menyn

Användning av switch-satsen

Föreställ dig att du köper en läsk från en varuautomat. När du väljer din önskade dryck, får variabeln user_input ett av flera fördefinierade värden djupt inne i automatens dator. Var och en av dessa alternativ kallas ett case, och det är här switch-satsen används.

Tänk på switch-satsen som en annan version av if-else-satsen. Den agerar utifrån specifika värden som du tidigare har definierat.

Så här ser strukturen för en switch-sats ut:

main.c

main.c

copy
1234567891011121314151617
switch (integer_expression) { case first_case_value: // Instruction for this case break; case second_case_value: // Instruction for this case break; case third_case_value: // Instruction for this case break; default: // Default instruction }

Tänk på ett exempel med en varuautomat. Antag att det finns tre knappar för att välja olika typer av chips:

  • Ostsmakade chips;
  • Baconsmakade chips;
  • Chilis smakade chips.
Main.c

Main.c

copy
123456789101112131415161718192021222324
#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }

Om det testade uttrycket inte matchar något av de listade fallen, körs default-fallet. Om inget default-fall anges, fortsätter programmet helt enkelt sitt flöde.

Note
Observera

Det testade uttrycket i ett switch-uttryck kan endast vara av typen heltal eller char. Du kan inte använda strängar eller icke-heltal som case-värden.

Main.c

Main.c

copy
12345678910111213141516171819202122232425
#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }

Brytningens roll

Kommandot break stoppar körningen av det aktuella blocket och går vidare till nästa kodsegment. När det relevanta fallet är klart lämnar du alltså blocket och fortsätter med programmet.

Utan kommandot break skulle switch-uttrycket fortsätta köra, vilket sannolikt leder till oavsiktliga resultat.

Main.c

Main.c

copy
123456789101112131415161718192021222324
#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }

Om break-kommandot saknas börjar programmet att exekvera direkt efter att ett matchande case har hittats och fortsätter tills det hittar ett break eller når slutet av switch-satsen.

question mark

Vad är huvudsyftet med break-satsen inuti ett switch-block?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
some-alt