Switch, 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
1234567891011121314151617switch (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
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.
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
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
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.
Tack för dina kommentarer!
Fråga AI
Fråga AI
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
Switch, 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
1234567891011121314151617switch (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
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.
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
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
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.
Tack för dina kommentarer!